Dieser Beitrag zeigt verschiedene Möglichkeiten, um bestimmte Zeichen in einem String zu zählen. So soll beispielsweise im Zelleintrag "Wo steht das geschrieben?" der Buchstabe "e" ermittelt werden.
Beispiel 1:
Public Function AnzahlZeichen(TextZelle As Range, SuchString As String)
Dim lngCnt
With TextZelle.Cells(1, 1)
AnzahlZeichen = 0
For lngCnt = 1 To Len(.Text)
If Mid(.Text, lngCnt, 1) = SuchString Then _
AnzahlZeichen = AnzahlZeichen + 1
Next lngCnt
End With
End Function
Erfassen Sie diese Funktion in einem neuen Code-Modul.
Nehmen wir an, der zu prüfende Text befindet sich in Zelle A1, dann können Sie die Zählfunktion mit folgendem Aufruf starten: =ANZAHLZEICHEN(A1;"e")
Beispiel 2:
Ein ganz anderer, aber interesanter Ansatz basiert auf dem Einsatz von VB-Script.
Public Function AnzahlZeichen(Zelle, Buchstabe)
Dim regex As Object
Set regex = CreateObject("Vbscript.Regexp")
With regex
.Pattern = Buchstabe
.ignorecase = True
.Global = True
AnzahlZeichen = .Execute(Zelle.Text).Count
End With
End Function
Es handelt sich zwar um einen ganz anderen Ansatz, das Ergebnis ist aber identisch.
Beispiel 3:
Im dritten Beispiel wird mit Funktionen gearbeitet. Dies hat den Vorteil, dass dieser Vergleich relativ schnell sein sollte.
Sub Zählen_i()
Dim strTxt$, strWas$, lngAnz%
strTxt = "Wo steht das geschrieben?"
strWas = "e"
'** Genaues Vergleichen
lngAnz = Len(strTxt) - Len(Replace(strTxt, strWas, ""))
MsgBox lngAnz
'** Groß- Kleinschreibung nicht relevant
lngAnz = Len(strTxt) - Len(Replace(UCase(strTxt), UCase(strWas), ""))
MsgBox lngAnz
End Sub