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

