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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen