VBA-Vergleich Operatoren: Ungleich, Less als oder gleich
⚡ Intelligente Zusammenfassung
VBA-Vergleich OperaMit den Operatoren `tors` können Sie zwei Werte vergleichen und `true` oder `false` zurückgeben. Diese Seite definiert die sechs Operatoren, zeigt ihre Anwendung in einer `If`-Anweisung, erklärt den Vergleich von Text und Datumsangaben und listet Fehler auf, die zu falschen Ergebnissen führen.

VBA-Vergleich Operatoren
Dies sind Operatoren, die zum Vergleichen von Werten verwendet werden. Zu den Vergleichsoperatoren gehören gleich, kleiner als, größer als und ungleich.
Vergleichsoperatoren werden verwendet, um Werte zu Validierungszwecken zu vergleichen. Nehmen wir an, Sie entwickelnping Eine einfache Kassenanwendung. In dieser Anwendung möchten Sie die eingegebenen Werte vor dem Buchen überprüfen. Hierfür können Sie Vergleichsoperatoren verwenden. Dieser Operator prüft, ob negative Zahlen vorliegen oder ob der gezahlte Betrag den Rechnungsbetrag nicht übersteigt. Vergleichsoperatoren sind in solchen Situationen sehr hilfreich.
Jeder Vergleich liefert einen von zwei Werten, entweder „Wahr“ oder „Falsch“, niemals eine Zahl. Auf dieses Ergebnis reagiert eine If-Anweisung.
In der folgenden Tabelle sind die in VBA.
| OperaDo. | Beschreibung |
|---|---|
| = | Gleich: prüft, ob zwei Werte gleich sind. Wird auch als Zuweisungsoperator verwendet |
| < | Less als: Prüft, ob der Wert links kleiner ist als der Wert rechts. |
| > | Größer als: Prüft, ob der Wert links größer ist als der Wert rechts. |
| <> | Ungleich: Prüft, ob zwei Werte voneinander verschieden sind. |
| <= | Less größer oder gleich: Prüft, ob der Wert links kleiner oder gleich dem Wert rechts ist. |
| >= | Größer oder gleich: Prüft, ob der Wert links größer oder gleich dem Wert rechts ist. |
Wenn man sieht, wie jeder Operator auf zwei Variablen angewendet wird, lässt sich das Ergebnis leichter vorhersagen.
VBA-Vergleich OperaToren mit Beispiel
Die folgende Tabelle zeigt den Excel VBA Vergleich OperaToren mit Beispielen und Ausgabe.
| S / N | OperaDo. | Beispiel | Ausgang |
|---|---|---|---|
| 1 | = | Wenn x = z Dann | Gibt „true“ zurück, wenn sie gleich sind, andernfalls wird „false“ zurückgegeben |
| 2 | < | Wenn x < z Dann | Gibt „true“ zurück, wenn x kleiner als z ist, andernfalls wird „false“ zurückgegeben |
| 3 | > | Wenn x > z Dann | Gibt „true“ zurück, wenn x größer als z ist, andernfalls wird „false“ zurückgegeben |
| 4 | <> | Wenn x <> z Dann | Gibt „true“ zurück, wenn sie nicht gleich sind, andernfalls wird „false“ zurückgegeben |
| 5 | <= | Wenn x <= z Dann | Gibt „true“ zurück, wenn x kleiner oder gleich z ist, andernfalls wird „false“ zurückgegeben |
| 6 | >= | Wenn x >= z dann | Gibt „true“ zurück, wenn x größer oder gleich z ist, andernfalls wird „false“ zurückgegeben |
Beispiel-Quellcode
Gleicher Vergleich OperaDo.
If 2 = 1 Then MsgBox "True", vbOKOnly, "Equal Operator" Else MsgBox "False", vbOKOnly, "Equal Operator" End If
HIER,
- „Wenn 2 = 1, dann… sonst… Ende wenn“ verwendet die if-Anweisung, um die Bedingung „2 = 1“ auszuwerten
- "NachrichtBox... " Ist eine integrierte Funktion, die ein Meldungsfeld anzeigt.
- Der erste Parameter „True“ oder „False“ wird im Meldungsfeld angezeigt. In unserem Beispiel ist 2 nicht gleich 1, daher wird im Meldungsfeld „false“ angezeigt.
- Der zweite Parameter „vbOKOnly“ ist die Schaltfläche, die im Meldungsfeld angezeigt wird
- Der dritte Parameter „Gleich Operator“ ist der Titel des Meldungsfeldes.
Die Ausführung des obigen Codes führt zu folgenden Ergebnissen
Dieser einzelne Test ist die einfachste Form. Reale Makros kombinieren Vergleiche und verzweigen zwischen mehreren Ergebnissen.
Wie man den Vergleich nutzt Operators in einer If-Anweisung
Ein Vergleichsoperator ist selten allein nützlich. Sein Ergebnis (Wahr oder Falsch) wird an eine Entscheidungsstruktur übergeben, wobei die Wenn-Anweisung am häufigsten zum Einsatz kommt. Das folgende Beispiel wertet einen Wert aus Zelle A1 aus und gibt das Ergebnis daneben aus.
Sub GradeScore() Dim Score As Long Score = Sheet1.Range("A1").Value If Score >= 90 Then Sheet1.Range("B1").Value = "Distinction" ElseIf Score >= 50 Then Sheet1.Range("B1").Value = "Pass" ElseIf Score < 0 Then MsgBox "A score cannot be negative", vbCritical, "Invalid Entry" Else Sheet1.Range("B1").Value = "Fail" End If End Sub
Das Makro liest den Score einmal ein und prüft ihn anschließend nacheinander anhand von drei Bedingungen. Vier Punkte erklären das beobachtete Verhalten.
- Die Reihenfolge ist entscheidend: VBA stoppt beim ersten Zweig, der True zurückgibt. Punktzahl >= 50 bevor Punktzahl >= 90 würde jede hohe Punktzahl als bestanden werten.
- „Sonst“ ist die Auffangklausel: Jeder Wert, der alle vorherigen Tests nicht besteht, wird an den Else-Zweig weitergeleitet, sodass keine Eingabe unbehandelt bleibt.
- Keine Verkettung: VBA kann nicht lesen 0 <= Punktzahl <= 100. Schreiben Wenn Punktzahl >= 0 und Punktzahl <= 100, dann Verwendung der logische Operatoren stattdessen.
- Gleicher Test, andere Strukturen: Die gleiche Bedingung treibt Do While und Select Case an, daher werden die Operatoren in jede von Ihnen geschriebene Schleife übernommen.
💡 Tipp: Deklarieren Sie die Variable mit einem numerischen Datentyp, wie gezeigt mit Schwache Punktzahl, solangeWenn der Wert ein Variant bleibt, der Text enthält, „9“ > „10“ Gibt True zurück, da der Vergleich zeichenweise erfolgt.
Vergleichen von Text und Datum in VBA
Numbers Vergleichen Sie genau so, wie es die Arithmetik nahelegt, aber Text und Datumsangaben folgen ihren eigenen Regeln, und beides überrascht Anfänger.
Zeichenketten werden zeichenweise anhand ihrer Sortierposition verglichen, daher gibt „Apple“ < „Banana“ True zurück. Standardmäßig wird bei dem Vergleich zwischen Groß- und Kleinschreibung unterschieden, was bedeutet, dass „guru99“ = „Guru99” gibt False zurück. Platzierung Option Text vergleichen Die Anweisung am Anfang des Moduls bewirkt, dass bei jedem Stringvergleich innerhalb dieses Moduls die Groß-/Kleinschreibung ignoriert wird. Für einen einzelnen Test, ohne das Modul zu ändern, verwenden Sie StrComp mit dem Argument vbTextCompare.
Die Datumsangaben werden als fortlaufende Nummern ab dem 30. Dezember 1899 gespeichert und sind daher direkt mit denselben sechs Operatoren vergleichbar. Schreiben Wenn Fälligkeitsdatum < Datum Die Funktion erkennt überfällige Elemente korrekt, da Date das aktuelle Systemdatum als Seriennummer zurückgibt. Eine Ausnahme bilden Datumsangaben im Textformat: „01/02/2026“ aus einer importierten Datei ist eine Zeichenkette, kein Datum, und muss alphabetisch verglichen werden. Konvertieren Sie diese vor dem Testen mit CDate.
Wer die Regeln für jeden Typ kennt, vermeidet die meisten Überraschungen, doch selbst erfahrenen Entwicklern unterlaufen immer noch einige Fehler.
Häufige Fehler beim Vergleichen von Werten in VBA
Die fünf folgenden Probleme sind die Ursache für die meisten Vergleiche, die zu einem unerwarteten Ergebnis führen.
- Aufgabe fälschlicherweise als Vergleich bezeichnet: Außerhalb einer Bedingung, x = 5 Speichert 5 in x. Innerhalb der If-Anweisung wird mit denselben Symbolen auf Gleichheit geprüft. VBA kennt keinen separaten ==-Operator, daher muss der Kontext sorgfältig gelesen werden.
- Tests Double Werte für exakte Gleichheit: Die gespeicherte Genauigkeit bedeutet, dass 0.1 + 0.2 = 0.3 den Wert False zurückgibt. Vergleichen Sie stattdessen die gerundete Differenz, zum Beispiel Wenn Abs(a – b) < 0.000001, dann.
- Vergleichen Sie irgendetwas mit Null: Null ist mit nichts gleichzusetzen, nicht einmal mit einem anderen Null. Verwenden Sie IsNull anstelle von = Null.
- Text mit einer Zahl vergleichen: Eine Zelle mit dem Text „100“ entspricht nicht der Zahl 100. Konvertieren Sie die Zelle vor dem Test mit CLng oder CDbl.
- .Text statt .Value lesen: Die .Text-Eigenschaft gibt den angezeigten Text zurück, der durch Spaltenbreite und Formatierung gekürzt wird. Vergleichen Sie immer .Value.
Laden Sie die obige Excel-Datei herunter. Code

