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.
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.