Vba: tekens uit een string verwijderen
U kunt de methode Replace() in VBA gebruiken om tekens uit een tekenreeks te verwijderen.
De volgende voorbeelden laten zien hoe u deze methode in de praktijk kunt gebruiken met de volgende lijst met tekenreeksen in Excel:
Voorbeeld 1: Gebruik VBA om alle tekens in een tekenreeks te verwijderen (hoofdlettergevoelig)
Laten we zeggen dat we „dit“ uit elke string willen verwijderen.
We kunnen hiervoor de volgende macro maken:
Sub RemoveChar() Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(Range(" A " & i), " this ", "") Next i End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Kolom B geeft elk van de tekenreeksen in kolom A weer, waarbij elke keer dat ‚dit‘ voorkomt, is verwijderd.
Merk op dat deze macro hoofdlettergevoelig is.
Dat wil zeggen dat elk voorkomen van “dit” wordt verwijderd, maar elk voorkomen van “dit” wordt met rust gelaten.
Voorbeeld 2: Gebruik VBA om alle tekens in een string te verwijderen (niet hoofdlettergevoelig)
Laten we zeggen dat we „dit“ (ongeacht hoofdlettergebruik) uit elke string willen verwijderen.
We kunnen hiervoor de volgende macro maken:
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "") Next i End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Kolom B geeft elk van de tekenreeksen in kolom A weer, waarbij elke keer dat ‚dit‘ voorkomt, is verwijderd.
Merk op dat deze vervanging niet hoofdlettergevoelig is .
Dat wil zeggen dat elke keer dat ‚dit‘ voorkomt (al dan niet met een hoofdletter geschreven) wordt verwijderd.
We hebben dit kunnen bereiken door de LCase -methode te gebruiken om elke tekenreeks in kolom A eerst naar kleine letters te converteren voordat we in elke tekenreeks naar ‚dit‘ zoeken.
Voorbeeld 3: Gebruik VBA om de eerste N tekens in een tekenreeks te verwijderen
Laten we zeggen dat we alleen de eerste keer dat „this“ voorkomt (ongeacht hoofdlettergebruik) uit elke tekenreeks willen verwijderen.
We kunnen hiervoor de volgende macro maken:
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "", Count:=1) Next i End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Kolom B geeft elk van de tekenreeksen in kolom A weer, waarbij alleen de eerste keer dat ‚dit‘ voorkomt, is verwijderd.
Houd er rekening mee dat we Count:=1 hebben gebruikt om alleen het eerste exemplaar van een specifieke tekenreeks te verwijderen, maar u kunt 1 vervangen door elke waarde die u wilt verwijderen in plaats van de eerste n exemplaren van een specifieke tekenreeks.
Opmerking : u kunt hier de volledige documentatie voor de VBA Replace -methode vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken kunt uitvoeren met VBA:
VBA: het aantal tekens in een string tellen
VBA: hoe controleer je of een string een andere string bevat?
VBA: cellen tellen met specifieke tekst