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.

  • Zweck: Vergleichsoperatoren validieren Daten, indem sie eine Bedingung prüfen, die entweder zu „Wahr“ oder „Falsch“ ausgewertet wird.
  • 🔢 Sechs OperaTore: Gleich, kleiner als, größer als, ungleich, kleiner oder gleich und größer oder gleich.
  • 🔁 Doppelrolle: Das Gleichheitszeichen vergleicht innerhalb einer Bedingung und weist außerhalb einen Wert zu.
  • 🧪 Wenn-Anweisung: Jeder Vergleich wird innerhalb einer If-, ElseIf- oder Do-While-Anweisung platziert, um zu steuern, welcher Code ausgeführt wird.
  • 🔤 Text und Daten: Zeichenketten werden zeichenweise verglichen, Datumsangaben hingegen wie Seriennummern.
  • ⚠️ Präzisionsfalle: Two Double Werte, die identisch aussehen, können einen Gleichheitstest nicht bestehen; vergleichen Sie daher eine gerundete Differenz.

VBA-Vergleich Operatoren

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

Gleich OperaDo.

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

Häufig gestellte Fragen

Nein. VBA wertet den ersten Vergleich auf „Wahr“ oder „Falsch“ aus und vergleicht das Ergebnis anschließend mit 10, was zu einem irreführenden Ergebnis führt. Schreiben Sie die beiden Tests separat und verknüpfen Sie sie mit der UND-Operation.

Der LIKE-Operator vergleicht eine Zeichenkette mit einem Muster anstatt mit einem exakten Wert. Platzhalter sind beispielsweise der Stern für beliebige Zeichen und das Fragezeichen für ein einzelnes Zeichen, also „Guru99“ Gefällt mirGuru*” gibt True zurück.

Verwenden Sie den Operator „Ist“, wie in „Wenn ws Nichts ist, dann“. Das Gleichheitszeichen vergleicht Werte, während „Ist“ prüft, ob zwei Objektvariablen auf dasselbe Objekt verweisen. Dies ist die einzige gültige Prüfung für Objekte.

Ja. Beschreiben Sie die Regel in einfachen Worten, z. B. „Markiere alle Bestellungen über 500, die vor heute aufgegeben wurden“. Ein KI-Assistent liefert dann die passende Bedingung. Überprüfen Sie die Grenzwerte, bevor Sie sich darauf verlassen.

Ja. Fügen Sie den If-Block und einen KI-Assistenten ein. tracPrüfen Sie, welcher Zweig jeden Wert abfängt und dann auf eine nicht erreichbare ElseIf-Anweisung oder einen Vergleich zwischen Text und einer Zahl hinweist. Bestätigen Sie die Korrektur schrittweise.ping durch den Code.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: