wijzig taal:

In Excel kan met de functie SPATIES.WISSEN (Engels: TRIM) de spaties van een tekst in een cel gewist worden. In VBA bestaat ook de Trim-functie, maar die werkt net even wat anders en die geeft in een aantal situaties ook andere resultaten.

Als voorbeeld nemen we de tekst:

"     Jan    Piet      "

geeft als resultaat:

"Jan Piet"

Het resultaat van de VBA-functie:

Trim("     Jan    Piet      ")

is echter:

"Jan    Piet"

Het verschil is dat bij de Excel-functies SPATIES.WISSEN ook de overtollige spaties tussen de woorden worden verwijderd, terwijl bij de VBA-functie alleen de spaties aan het begin en aan het eind worden weggehaald. Om met VBA hetzelfde effect te krijgen als SPATIES.WISSEN kan gebruikt gemaakt worden van:

Application.Trim("     Jan    Piet      ")

Wanneer niet in een Excel omgeving wordt gewerkt, kan als alternatief de volgende code gebruikt worden:

Replace(Replace(Replace(Trim("     Jan    Piet      "), " ", " ~"), "~ ", ""), " ~", " ")

In VBA bestaan naast Trim ook nog de LTrim en RTrim-functies, waarbij alleen de spaties aan de linker of aan de rechterzijde worden verwijderd.

Formules voor de VBA Trim-functies

Voor de VBA-functies Trim, LTrim en RTrim bestaan in Excel geen standaard functies die exact hetzelfde resultaat geven. De volgende formules kunnen hiervoor gebruikt worden, waarbij de zin met spaties in cel A1 staat:

Voor LTrim:

=DEEL(A1;VIND.SPEC(LINKS(SPATIES.WISSEN(A1);1);A1);LENGTE(A1))

Voor RTrim:

=LINKS(A1;MAX(INDEX((DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)));1)<>" ")*RIJ(INDIRECT("1:"&LENGTE(A1)));)))

En voor de VBA Trim-functie is dat een combinatie van beide bovengenoemde formules:

=DEEL(A1;VIND.SPEC(LINKS(SPATIES.WISSEN(A1);1);A1);MAX(INDEX((DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)));1)<>" ")*RIJ(INDIRECT("1:"&LENGTE(A1)));))-VIND.SPEC(LINKS(SPATIES.WISSEN(A1);1);A1)+1)

Met deze laatste formule worden dus alleen de spaties aan het begin en aan het eind verwijderd en blijven alle tussenliggende spaties behouden.

Vragen / suggesties

Hopelijk heeft dit artikel geholpen bij het verwijderen van spaties met formules of VBA. Als er verdere vragen over dit onderwerp zijn of suggesties voor verbetering, plaats dan een reactie hieronder.

Reacties  
# paul markwat 24-11-2021 22:14
en als ik in een Userform textbox ongewild bij het kopiƫren van een woord een spatie aan het begin hebt staan?
kan ik die ook wegkrijgen bij het lezen van de tekst in de textbox?
het gaat om namen en als ik een spatie hevbt staan dan komt de naam niet op de juiste plek te staan.
Antwoorden
# Manfred van den Noort 25-11-2021 16:37
Als je een Userform gebruikt dan kun je in dit geval met VBA gebruik maken van de Trim of LTrim. Met deze functies worden de spaties aan beide kanten of de spaties aan de linkerkant verwijderd.
Antwoorden
arrow_up