ich habe folgende Frage.
In einer Zelle steht ein Text. Bspw. "ich bin ein igel".
Gibt es eine Lösung, um alle i zu zählen? In diesem Beispiel sollte die Lösung 4 lauten.
Vielen Dank für euere Tipps.
Armin
Sub Zählen_i()
Dim Txt$, Was$, ANZ%
Txt = "Ich bin ein Igel"
Was = "i"
ANZ = Len(Txt) - Len(Replace(Txt, Was, "")) ' genaues vergleichen
MsgBox ANZ
ANZ = Len(Txt) - Len(Replace(UCase(Txt), UCase(Was), "")) ' Groß klein egal
MsgBox ANZ
End Sub
| ||||||||||
| A | B | |
| 1 | ich bin ein igel | 4 |
| Formeln der Tabelle | ||||
|
Um die Anzahl bestimmter Zeichen in einer Zelle mit VBA zu zählen, kannst du die folgende Vorgehensweise nutzen:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
Füge den folgenden VBA-Code in das Modul ein:
Option Explicit
Sub count()
Dim lang As Long, i As Long, letter As String, no As Long
lang = Len(Range("A1"))
For i = 1 To lang
letter = Mid$(Range("A1"), i, 1)
If letter = "i" Then no = no + 1
Next
MsgBox no & " mal i"
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Gib in Zelle A1 einen Text ein, z.B. "ich bin ein igel".
Führe das Makro count aus, um die Anzahl der Buchstaben i zu zählen.
Fehler: "Der Makro kann nicht ausgeführt werden."
Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Makroeinstellungen und aktiviere die entsprechenden Optionen.Fehler: Das Ergebnis ist nicht wie erwartet.
If letter = "i" Then.Du kannst auch eine Funktion erstellen, um die Anzahl der Zeichen in einem String zu zählen. Hier ist ein Beispiel:
Public Function AnzahlZeichen(TextZelle As Range, SuchString As String) As Long
Dim i As Long
With TextZelle.Cells(1, 1)
AnzahlZeichen = 0
For i = 1 To Len(.Text)
If Mid(.Text, i, 1) = SuchString Then AnzahlZeichen = AnzahlZeichen + 1
Next i
End With
End Function
Diese Funktion kannst du in einer Zelle verwenden, indem du z.B. =AnzahlZeichen(A1, "i") eingibst.
i in "Ich bin ein Igel" zu zählen, kannst du die Funktion AnzahlZeichen verwenden.Nutze die Replace-Funktion, um die Anzahl bestimmter Zeichen schnell zu berechnen:
ANZ = Len(Txt) - Len(Replace(Txt, Was, ""))
Verwende UCase oder LCase, um die Groß- und Kleinschreibung zu ignorieren:
ANZ = Len(UCase(Txt)) - Len(Replace(UCase(Txt), UCase(Was), ""))
1. Wie zähle ich Leerzeichen in einer Zelle?
Du kannst die gleiche Technik verwenden, indem du das SuchString einfach auf ein Leerzeichen änderst: =AnzahlZeichen(A1, " ").
2. Wie viele Zeichen sind in einer Zelle?
Verwende die Funktion =LÄNGE(A1), um die Anzahl der Zeichen in der Zelle A1 zu ermitteln.
3. Gibt es eine Funktion, um alle Buchstaben in einem Text zu zählen?
Ja, du kannst eine Schleife erstellen, die durch jeden Buchstaben iteriert und die Anzahl in einer Variablen speichert.
4. Wie kann ich eine Regex verwenden, um bestimmte Zeichen zu zählen?
Hier ist ein einfaches Beispiel mit Regex:
Public Function machs(Zelle As Range, Buchstabe As String) As Long
Dim regex As Object
Set regex = CreateObject("Vbscript.RegExp")
With regex
.Pattern = Buchstabe
.IgnoreCase = True
.Global = True
machs = .Execute(Zelle.Text).Count
End With
End Function
Verwende =machs(A1, "i"), um die Anzahl der i zu zählen.