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