Wie verwende ich die verschachtelte if-funktion von vba?

In VBA können Sie eine IF-Anweisung innerhalb einer anderen IF-Anweisung verwenden, um verschachtelte IFs zu erstellen. Mit einfachen Worten: Sie können eine Testanweisung mit IF basierend auf dem Ergebnis einer anderen IF-Anweisung ausführen. Bei dieser Art von bedingter Anweisung müssen Sie komplexe Bedingungen testen. Sehen wir uns ein Beispiel an:

vba-nested-if

Im obigen Beispiel testen wir zwei Bedingungen, Bedingung1 (1 + 1 = 2) und Bedingung2 (2 + 2 = 4).

Da wir jedoch die IF-Anweisung innerhalb der IF-Anweisung sind, testet VBA zuerst die erste Bedingung und fährt dann mit der nächsten IF fort.

Im zweiten IF haben wir ein Meldungsfeld, das anzeigt, ob die Bedingung TRUE ist.

 Sub myMacro1() 'first if statement If 1 + 1 = 2 Then 'second if statement If 2 + 2 = 4 Then MsgBox True End If Else MsgBox False End If End Sub

Hier ist ein Beispiel für die Verwendung mehrerer IFs in einem IF.

Es gibt einen Unterschied zwischen dem zuvor verwendeten Beispiel und dem obigen Beispiel: In diesem Code haben wir eine verschachtelte Bedingung für „Else“ verwendet.

Wenn die erste Bedingung nicht wahr ist, springt VBA zu „Sonst“ und testet die Bedingung. Wenn diese Bedingung nicht wahr ist, fahren Sie mit der nächsten fort.

Auf diese Weise müssen wir insgesamt vier Bedingungen testen.

 Sub myMacro2() Dim myScore As Single: myScore = Range("A1").Value If myScore >= 80 Then MsgBox "Excellent" Else If myScore >= 60 And myScore < 80 Then MsgBox "Good" Else If myScore >= 40 And myScore < 60 Then MsgBox "Average" Else If myScore < 40 Then MsgBox "Poor" End If End If End If End If End Sub

Diese verschachtelte IF-Anweisung testet die Punktzahl von Zelle A1 und zeigt ein entsprechendes Meldungsfeld an.

VBA verschachteltes IF mit mehreren Zeilen (IF)

Sie können auch zwei verschiedene IFs verwenden, um beide Ergebnisse (True und False) zu ermitteln.

Wie Sie im obigen Beispiel sehen können, müssen wir zunächst eine Bedingung testen. Wenn diese Bedingung WAHR ist, müssen Sie eine andere Bedingung testen. Wenn diese zweite Bedingung WAHR ist, wird ein Meldungsfeld angezeigt.

Und wenn die Hauptbedingung falsch ist, müssen Sie eine weitere Bedingung testen und erhalten ein Meldungsfeld, wenn diese Bedingung wahr ist.

 Sub myMacro3() If 1 + 1 = 2 Then If 2 - 1 = 1 Then MsgBox "Condition1 is TRUE." End If Else If 3 - 2 = 1 Then MsgBox "Condition2 is TRUE." End If End If End Sub

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert