/ / Wörter in Excel VBA zählen

Wörter in Excel VBA zählen

Unten sehen wir uns ein Programm in Excel VBA Das zählt die Anzahl der Wörter in einem ausgewählten Bereich. Ein oder mehrere Leerzeichen werden als getrennte Wörter angenommen.

Situation:

Wörter in Excel VBA zählen

1. Zuerst deklarieren wir zwei Range-Objekte und drei Variablen. Wir nennen die Range-Objekte rng und cell. Eine Integer-Variable, die wir cellWords nennen, eine Integer-Variable, die wir totalWords nennen, und eine String-Variable, die wir Inhalt nennen.

Dim rng As Range, cell As Range
Dim cellWords, totalWords As Integer, content As String

2. Wir initialisieren das Range-Objekt rng mit dem ausgewählten Bereich und die beiden Variablen vom Typ Integer mit dem Wert 0.

Set rng = Selection
cellWords = 0
totalWords = 0

3. Wir möchten jede Zelle in einem zufällig ausgewählten Bereich überprüfen (dieser Bereich kann beliebig groß sein). In Excel VBA können Sie dafür die For Each Next-Schleife verwenden. Fügen Sie die folgenden Codezeilen hinzu:

For Each cell In rng

Next cell

Hinweis: Rng und Zelle werden hier zufällig ausgewählt, Sie können beliebige Namen verwenden. Denken Sie daran, im Rest Ihres Codes auf diese Namen zu verweisen.

4. Als nächstes bestimmen wir für jede Zelle in diesem Bereich, wie viele Wörter es enthält. Um eine Zelle zu ignorieren, die eine Formel enthält, fügen Sie die folgende Codezeile zwischen For Each und Next hinzu (nur wenn cell.HasFormula false ist, setzen wir fort).

If Not cell.HasFormula Then

End If

5. Zuerst schreiben wir den Inhalt der Zelle in den Variableninhalt. Als nächstes entfernen wir die Leerzeichen am Anfang und am Ende (falls vorhanden). In Excel VBA können Sie dafür die Trim-Funktion verwenden. Zum Beispiel wird "Excel VBA" in "Excel VBA" konvertiert. Fügen Sie die folgenden Codezeilen in Ihrer If-Anweisung hinzu.

content = cell.Value
content = Trim(content)

Hinweis: Die Trimmfunktion in Excel VBA entfernt keine zusätzlichen Leerzeichen zwischen Wörtern, aber das ist in diesem Beispiel OK.

6. Zu diesem Zeitpunkt kann eine Zelle noch leer sein. Wenn die Zelle leer ist, weisen wir der Variablen cellWords den Wert 0 zu. Wenn nicht, enthält es mindestens ein Wort und wir weisen der Variablen cellWords den Wert 1 zu. Fügen Sie die folgenden Codezeilen in Ihrer If-Anweisung hinzu.

If content = "" Then
    cellWords = 0
Else
    cellWords = 1
End If

Eine Zelle kann natürlich mehr als ein Wort enthalten. Das "s genau das, was wir jetzt wollen, um herauszufinden Als Beispiel nehmen wir.‚. Excel VBA‘Wenn eine Zelle mindestens einen Raum in diesem Stadium enthält, mindestens ein Wort enthält Sie die Instr Funktion können Sie in Excel VBA, um nach einem Leerzeichen zu suchen Instr (content, "") findet die Position des ersten Leerzeichens im Inhalt.

7. Wir werden die Do While-Schleifenstruktur verwenden. Code zwischen diesen Wörtern (in Schritt 8, 9 und 10) wird solange wiederholt, wie der Teil nach Do While wahr ist. Wir möchten diese Schritte wiederholen, solange Instr (content, "")> 0 wahr ist (solange der Inhalt ein Leerzeichen und somit mehr Wörter enthält). Fügen Sie die Do While-Schleife in Ihrer If-Anweisung hinzu.

Do While InStr(content, " ") > 0

Loop

8. Als nächstes nehmen wir den Teil des Inhalts, der an der Position des ersten Raums beginnt. Wir verwenden dafür die Mid-Funktion.

content = Mid(content, InStr(content, " "))

Zum Beispiel: Mid ("Excel VBA", InStr ("Excel VBA", "")) wird "VBA" geben.

9. Wir trimmen die Saite erneut.

content = Trim(content)

Ergebnis: "vba"

10. Wir erhöhen cellWords um 1.

cellWords = cellWords + 1

Diese Do While-Schleife wird solange wiederholtInhalt enthält einen Raum und somit mehr Wörter. In unserem Beispiel beenden wir die Do While-Schleife, da "vba" kein Leerzeichen mehr enthält! Ergebnis: Diese Zelle enthält 2 Wörter.

11. Nachdem wir eine Zelle überprüft haben, fügen wir cellWords zur Variable totalWords hinzu. Diese Codezeile sollte außerhalb der Do While-Schleife, aber in der If-Anweisung platziert werden.

totalWords = totalWords + cellWords

Der gesamte Prozess beginnt erneut für die nächste Zelle, bis alle Zellen überprüft wurden.

12. Schließlich zeigen wir den Wert von totalWords mit einer msgbox an. Diese Codezeile sollte außerhalb der For Each Next-Schleife platziert werden.

MsgBox totalWords & " words found in the selected range."

13. Testen Sie das Programm.

Ergebnis:

Wörter zählen Ergebnis

Lesen Sie auch: