Mit VBA können Sie die logischen Operatoren verwenden Und, Oder, Nicht, Xor Werte zu vergleichen. Die Operatoren werden als „Boolean“ betrachtet, was bedeutet, dass sie als Ergebnis True oder False zurückgeben.
Wenn Sie lernen möchten, wie man Strings vergleicht, klicken Sie hier: VBA Compare Strings - StrComp
Wenn Sie lernen möchten, wie man Vergleichsoperatoren verwendet, klicken Sie hier: VBA-Vergleichsoperatoren - Nicht gleich & Mehr
Verwenden des logischen Operators And
Die Und Der logische Operator vergleicht zwei oder mehr Bedingungen. Wenn alle Bedingungen wahr sind, gibt der Operator True zurück. Wenn mindestens eine der Bedingungen nicht wahr ist, gibt der Operator False zurück. Hier ist ein Beispiel:
123456789101112 | Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 5Wenn intA = 5 Und intB = 5 DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
In diesem Beispiel wollen wir prüfen, ob beide intA und intB gleich 5 sind. Wenn dies wahr ist, ist der Wert von Boolean blnErgebnis wird True sein, andernfalls wird es False sein.
Zuerst setzen wir Werte von intA und intB zu 5:
12 | intA = 5intB = 5 |
Danach verwenden wir die Und Operator in der If-Anweisung, um zu überprüfen, ob die Werte gleich 5 sind:
12345 | Wenn intA = 5 Und intB = 5 DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
Da beide Variablen gleich 5 sind, ist die blnErgebnis gibt True zurück:
Bild 1. Verwenden des logischen Operators And in VBA
Verwenden des logischen Operators Or
Die Oder Der logische Operator vergleicht zwei oder mehr Bedingungen. Wenn mindestens eine der Bedingungen wahr ist, wird True zurückgegeben. Wenn keine der Bedingungen wahr ist, gibt der Operator False zurück. Hier der Code für das Beispiel:
123456789101112 | Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Wenn intA = 5 Oder intB = 5 DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
In diesem Beispiel wollen wir prüfen, ob beide intA ist gleich 5. oder intB ist gleich 10. Wenn eine dieser Bedingungen zutrifft, ist der Wert von Boolean blnErgebnis wird True sein, andernfalls wird es False sein.
Zuerst setzen wir den Wert von intA bis 5 und intB bis 10:
12 | intA = 5intB = 10 |
Danach verwenden wir die Oder Operator in der If-Anweisung, um zu überprüfen, ob einer der Werte gleich 5 ist:
12345 | Wenn intA = 5 Oder intB = 5 DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
Wie intA Wert ist 5, der blnErgebnis gibt True zurück:
Bild 2. Verwenden des logischen Operators Or in VBA
Verwenden des nicht logischen Operators
Die Nicht Der logische Operator prüft eine oder mehrere Bedingungen. Wenn die Bedingungen wahr sind, gibt der Operator False zurück. Andernfalls wird True zurückgegeben. Hier ist der Code für das Beispiel:
12345678910 | Dim intA As IntegerDim blnResult As BooleanintA = 5Wenn nicht (intA = 6) DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
In diesem Beispiel wollen wir prüfen, ob der Wert von intA ist ungleich 6. Wenn intA ungleich 6 ist, ist der Wert von Boolean blnErgebnis wird True sein, andernfalls wird es False sein.
Zuerst setzen wir den Wert von intA zu 5:
1 | intA = 5 |
Danach verwenden wir den Not-Operator in der If-Anweisung, um zu überprüfen, ob der Wert von intA von 6 abweicht:
12345 | Wenn nicht (intA = 6) DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
Wie intA Wert ist 5, der blnErgebnis gibt True zurück:
Bild 3. Verwenden des logischen Operators Not in VBA
Verwenden des logischen Xor-Operators
Die Xor Der logische Operator vergleicht zwei oder mehr Bedingungen. Wenn genau eine der Bedingungen wahr ist, wird True zurückgegeben. Wenn keine oder mehrere Bedingungen wahr sind, wird False zurückgegeben. Hier der Code für das Beispiel:
123456789101112 | Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Wenn intA = 5 Xoder intB = 5 DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
In diesem Beispiel wollen wir prüfen, ob genau einer der Werte (intA oder IntB) gleich 5 ist. Wenn nur eine Bedingung wahr ist, ist der Wert von Boolean blnErgebnis wird True sein, andernfalls wird es False sein.
Zuerst setzen wir den Wert von intA bis 5 und intB bis 10:
12 | intA = 5intB = 10 |
Danach verwenden wir die Oder Operator in der If-Anweisung, um zu überprüfen, ob einer der Werte gleich 5 ist:
12345 | Wenn intA = 5 Xoder intB = 5 DannblnResult = TrueAndersblnResult = FalseEnde Wenn |
Wie intA Wert ist 5 und intB ist 10, die blnErgebnis gibt True zurück:
Bild 4. Verwenden des logischen Xor-Operators in VBA
Ist Betreiber
Der Is-Operator testet, ob zwei Objektvariablen dasselbe Objekt speichern.
Schauen wir uns ein Beispiel an. Hier werden wir den Arbeitsblattobjekten rng1 und rng2 zwei Arbeitsblätter zuweisen und testen, ob die beiden Arbeitsblattobjekte dasselbe Arbeitsblatt speichern:
12345678910111213 | Unter CompareObjects()Dim ws1 als Arbeitsblatt, ws2 als ArbeitsblattSet ws1 = Sheets("Sheet1")Set ws2 = Sheets("Sheet2")Wenn ws1 ws2 ist, dannMsgBox "Gleiche WS"AndersMsgBox "Verschiedene WSs"Ende WennEnd Sub |
Natürlich sind die Arbeitsblattobjekte nicht gleich, daher wird „Different WSs“ zurückgegeben.
Gefällt mir Betreiber
Der Like-Operator kann zwei Strings auf ungenaue Übereinstimmungen vergleichen. In diesem Beispiel wird getestet, ob eine Zeichenfolge mit „Mr.“ beginnt.
1234567891011121314 | Abo LikeDemo()Dim strName als StringDim blnResult As BooleanstrName = "Herr Michael James"Wenn strName wie "Mr*" ThenblnResult = TrueAndersblnResult = FalseEnde WennEnd Sub |