VBA IIF - Wie verwende ich die VBA IIF-Funktion in Excel? (mit Beispielen)

Inhaltsverzeichnis

Excel VBA IIF

Wenn Sie regelmäßig VBA-Makros verwenden, müssen Sie auf die Funktion „IIF“ gestoßen sein, oder Sie haben diese Funktion möglicherweise im Internet gesehen. Auf den ersten Blick müssen Sie gedacht haben, dass es sich um eine IF-Bedingung wie unsere reguläre IF-Anweisung in Excel handelt. Dies ist jedoch nicht dieselbe IF-Anweisung, mit der wir logische Tests bewerten und Ergebnisse basierend auf den von uns angegebenen Kriterien erhalten. In diesem Artikel werden wir Sie durch die Bedingung "VBA IIF" in VBA führen.

Was macht die IIF-Bedingung in VBA?

Dies ist unserem IF-Zustand sehr ähnlich, unterscheidet sich jedoch geringfügig. Die Bedingung "VBA IIF" testet den angegebenen Ausdruck oder den logischen Test und gibt als Ergebnis entweder TRUE oder FALSE zurück.

VBA IIF-Syntax

Schauen Sie sich die Syntax der IIF-Funktion an.

  • Ausdruck: Dies ist nichts anderes als der logische Test, den wir durchführen möchten.
  • Ture Part: Wenn der logische Test TRUE ist, was sollte dann der TRUE Part sein?
  • Falscher Teil: Wenn der logische Test FALSE ist, was sollte das Ergebnis des FALSE-Teils sein?

Wir können unsere eigenen Ergebnisse mit TRUE & FALSE-Teilen eingeben. Obwohl die Argumente denen der IF-Bedingung ähnlich sehen, wird dies etwas anders sein. Wir werden das in den Beispielen der Excel VBA IIF-Funktion sehen.

Einer der Hauptunterschiede zwischen regulärem "IF" und diesem "IIF" besteht darin, dass wir den Code mit der IF-Bedingung auf eine einzige Zeile reduzieren können, und dass mindestens 5 Zeilen erforderlich sind, um das gleiche Ergebnis zu erzielen.

Beispiel einer VBA IIF-Funktion

Nachfolgend finden Sie Beispiele für die VBA IIF-Funktion in Excel.

Beispiel 1 - VBA IIF

Ok, wir werden ein einfaches Beispiel für die IIF-Funktion sehen. Jetzt werden wir testen, ob eine Zahl größer oder kleiner als eine andere Zahl ist. Führen Sie die folgenden Schritte aus, um den VBA-Code zu schreiben.

Schritt 1: Starten Sie das Makro.

Schritt 2: Definieren Sie die Variable als String in VBA.

Code:

Sub IIF_Example () Dim FinalResult As String End Sub

Schritt 3: Definieren Sie zwei weitere Variablen als Long in VBA.

Code:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long End Sub

Schritt 4: Weisen Sie nun für die Variable "Number1" den Wert 105 und für die Variable "Number2" den Wert 100 zu.

Code:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub

Schritt 5: Nun weisen wir für die erste definierte Variable "FinalResult" das Ergebnis der IIF-Funktion zu. Öffnen Sie also die IIF für die Variable.

Schritt 6: Geben Sie den Ausdruck als Nummer1> Nummer2 ein.

Schritt 7: Wenn der Ausdruck nun WAHR ist, was sollte das Ergebnis sein? Ich werde das Ergebnis als "Nummer 1 ist größer als Nummer 2" zuweisen.

Schritt 8: Wenn der Ausdruck nun FALSE ist, was sollte das Ergebnis sein? Ich werde das Ergebnis als "Nummer 1 ist kleiner als Nummer 2" zuweisen.

Jetzt ist der Variablenwert einer der folgenden.

Wenn True: "Nummer 1 ist größer als Nummer 2."

Wenn falsch: "Nummer 1 ist kleiner als Nummer 2."

Schritt 9: Lassen Sie uns das Ergebnis in einem Meldungsfeld in VBA anzeigen.

Code:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Nummer1> Nummer2, "Nummer 1 ist größer als Nummer 2", "Nummer 1 ist kleiner als Nummer 2") MsgBox FinalResult End Sub

Lassen Sie uns nun den Code ausführen und das Ergebnis sehen.

Da der Wert für Nummer 1 105 ist, was größer als der Wert für Nummer 2 von 100 ist, haben wir das Ergebnis als "Nummer 1 ist größer als Nummer 2" erhalten. Da der Ausdruck TRUE ist, hat die IIF-Bedingung dieses Ergebnis zurückgegeben.

Beispiel 2 - IF vs. IIF

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

Sub IIF_Example() Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 2"

Beide Funktionen geben das gleiche Ergebnis zurück, aber mit IIF können wir nur in einer einzigen Zeile codieren, wobei die IF-Anweisung mehrere Zeilen erfordert.

Beispiel 3 - VBA-verschachtelte IIF-Bedingung

So wie wir verschachtelte IF verwenden, um mehrere Bedingungen auf ähnliche Weise zu testen, können wir auch mehrere IIF verwenden. Schauen Sie sich den folgenden Code an.

Code:

Sub IIF_Example2 () Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks))) > 60, "Third", "Fail")))) MsgBox FinalResult End Sub

Die obige IIF-Bedingung testet fünf logische Tests und gibt das Ergebnis entsprechend zurück.

Interessante Beiträge...