Zeichen in String zählen

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