Vba: het aantal tekens in een string tellen
U kunt de volgende basissyntaxis gebruiken om het aantal keren dat een teken in een tekenreeks voorkomt te tellen met behulp van VBA:
Sub CountOccurrences()
Dim i As Integer
'Specify character to look for
my_char = "/"
'Count occurrences in each string in B2:B12 and display results in C2:C12
For i = 2 To 12
Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
Range(" C " & i) = Count
Next i
End Sub
Dit specifieke voorbeeld telt het aantal keren dat een schuine streep ( / ) voorkomt in elke cel in het bereik B2:B12 en geeft de resultaten weer in het bereik C2:C12 .
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Tel het aantal tekens in een string met behulp van VBA
Laten we zeggen dat we de volgende gegevensset in Excel hebben die de namen van verschillende basketbalspelers toont en de posities die ze in een spel kunnen spelen:
Stel dat we het aantal schuine strepen ( / ) in elke tekenreeks in de kolom Positie willen tellen.
We kunnen hiervoor de volgende macro maken:
Sub CountOccurrences()
Dim i As Integer
'Specify character to look for
my_char = "/"
'Count occurrences in each string in B2:B12 and display results in C2:C12
For i = 2 To 12
Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
Range(" C " & i) = Count
Next i
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
De waarden in kolom C geven het aantal schuine strepen weer in de overeenkomende tekenreeksen in kolom B.
Bijvoorbeeld:
- De Guard/Forward-reeks bevat 1 schuine streep.
- De Guard-tekenreeks bevat 0 schuine strepen.
- De Guard-tekenreeks bevat 0 schuine strepen.
- De tekenreeks Voorwaarts/Midden bevat 1 schuine streep.
Enzovoort.
Om exemplaren van een ander karakter te tellen, wijzigt u eenvoudigweg het karakter van de my_char variabele in de macro.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: hoe controleer je of een string een andere string bevat?
VBA: het aantal rijen binnen bereik tellen
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven