Wörter zählen in Excel VBA - Einfache Excel-Makros

Inhaltsverzeichnis

Im Folgenden sehen wir uns ein Programm in an Excel VBA das zählt die Anzahl der Wörter in einem ausgewählten Bereich. Es wird angenommen, dass ein oder mehrere Leerzeichen Wörter trennen.

Lage:

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

Dim rng als Bereich, Zelle als Bereich
Dim cellWords, totalWords As Integer, content As String

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

Set rng = Auswahl
ZellenWörter = 0
Gesamtwörter = 0

3. Wir wollen 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:

Für jede Zelle In rng
Nächste Zelle

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

4. Als nächstes bestimmen wir für jede Zelle in diesem Bereich, wie viele Wörter sie 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, fahren wir fort).

Wenn nicht cell.HasFormula Then
Ende Wenn

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" umgewandelt. Fügen Sie Ihrer If-Anweisung die folgenden Codezeilen hinzu.

Inhalt = Zelle.Wert
Inhalt = Trim (Inhalt)

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

6. Zu diesem Zeitpunkt kann eine Zelle noch leer sein. Ist die Zelle leer, 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 Ihrer If-Anweisung die folgenden Codezeilen hinzu.

Wenn Inhalt = "" Then
ZellenWörter = 0
Anders
ZellenWörter = 1
Ende Wenn

Eine Zelle kann natürlich mehr als ein Wort enthalten. Genau das wollen wir jetzt herausfinden. Als Beispiel nehmen wir: "excel vba". Wenn eine Zelle zu diesem Zeitpunkt mindestens ein Leerzeichen enthält, enthält sie mindestens ein weiteres Wort. Sie können die Instr-Funktion in Excel VBA verwenden, um nach einem Leerzeichen zu suchen. Instr(content, " ") findet die Position des ersten Leerzeichens im Inhalt.

7. Wir verwenden die Do While Loop-Struktur. Zwischen diesen Wörtern platzierter Code (in Schritt 8, 9 und 10) wird solange wiederholt, wie der Teil nach Do While wahr ist. Wir wollen diese Schritte wiederholen, solange Instr(Inhalt, " ") > 0 wahr ist (solange der Inhalt ein Leerzeichen und damit mehr Wörter enthält). Fügen Sie die Do While-Schleife in Ihre If-Anweisung ein.

Do While InStr(content, " ") > 0
Schleife

8. Als nächstes nehmen wir den Teil des Inhalts, der an der Position des ersten Leerzeichens beginnt. Dazu verwenden wir die Mid-Funktion.

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

Zum Beispiel: Mid("excel vba", InStr("excel vba", " ")) ergibt " vba".

9. Wir trimmen die Saite erneut.

Inhalt = Trim (Inhalt)

Ergebnis: "vba"

10. Wir erhöhen cellWords um 1.

cellWords = cellWords + 1

Diese Do While-Schleife wird solange wiederholt, wie der Inhalt ein Leerzeichen und damit mehr Wörter enthält. In unserem Beispiel verlassen 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 Variablen totalWords hinzu. Diese Codezeile sollte außerhalb der Do While-Schleife, aber in der If-Anweisung platziert werden.

totalWords = totalWords + cellWords

Der gesamte Vorgang 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 & " Wörter im ausgewählten Bereich gefunden."

13. Testen Sie das Programm.

Ergebnis:

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave