VBA – Kombination von If mit And, Or und Not
In diesem Tutorial zeigen wir Ihnen, wie Sie die If-Anweisung mit And, Or und Not in VBA verwenden können.
Wenn wir eine IF-Anweisung in Excel VBA verwenden, führt diese eine Codezeile aus, wenn die zu prüfende Bedingung erfüllt ist.
- Wir können AND- und OR-Anweisungen in Verbindung mit IF-Anweisungen verwenden, um auf mehr als eine Bedingung zu prüfen und den Code entsprechend zu steuern.
- Wir können auch eine NOT-Anweisung mit einer IF-Anweisung verwenden, um zu prüfen, ob die Bedingung NICHT wahr ist. Sie ist im Grunde die Umkehrung der IF-Anweisung, wenn sie allein verwendet wird.
IF…AND
Die IF…AND-Kombination von logischen Operatoren kann verwendet werden, wenn mehr als eine Bedingung geprüft werden soll, wobei alle Bedingungen wahr sein müssen, damit die nächste Codezeile ausgeführt werden kann.
Betrachten wir zum Beispiel das folgende Blatt:
Um zu prüfen, ob der Gewinn über 5.000 $ liegt, können wir das folgende Makro ausführen:
Sub GewinnPruefen()
If Range("C5") >= 10000 And Range("C6") < 5000 Then
MsgBox "$5,000 Gewinn erzielt!"
Else
Msgbox "Kein Gewinn erzielt!"
End If
End Sub
Dieses Makro prüft, ob die Zelle C5 größer oder gleich $10.000 ist UND ob die Zelle B6 kleiner als $5.000 ist. Wenn beide Bedingungen erfüllt sind, wird die folgende Meldungsbox angezeigt:
Wenn wir das Makro so ändern, dass es prüft, ob C5 nur größer als 10.000 $ ist, wird der Gewinn nicht erzielt!
WENN…ODER
Wir können die IF…OR-Kombination von logischen Operatoren verwenden, wenn wir auf mehr als eine Bedingung prüfen wollen, wobei nur eine der Bedingungen wahr sein muss, damit die nächste Codezeile ausgeführt wird.
Das Format hierfür ist fast identisch mit dem obigen IF…AND-Beispiel.
Sub GewinnPruefen()
If Range("C5") > 10000 Or Range("C6") < 5000 Then
MsgBox "$5,000 Gewinn erzielt!"
Else
Msgbox "Gewinn nicht erzielt!"
End If
End Sub
Da wir bei diesem Makro jedoch eine IF…OR-Anweisung verwenden, muss nur eine der Bedingungen wahr sein.
IF NOT…
IF NOT kehr die IF-Anweisung um. Es wird geprüft, ob die Bedingung NICHT wahr ist, anstatt zu prüfen, ob diese wahr ist.
Sub GewinnPruefen()
If NOT Range("C5")< 10000 Or Range("C6") < 5000 Then
MsgBox "$5.000 Gewinn erzielt!"
Else
MsgBox "Kein Gewinn erzielt!"
End If
End Sub
Im obigen Beispiel prüft die IF-Anweisung, ob der Wert in C5 NICHT kleiner als 10000 ist.
Daher prüfen diese Codezeile
IF Range("C5") > 10000
und diese Codezeile
IF NOT Bereich("C5") < 10000
auf das Gleiche!