VBA Multiple (verschachtelte) If-Anweisungen

Dieses Tutorial zeigt Ihnen, wie Sie verschachtelte If-Anweisungen in VBA verwenden

Wenn Anweisungen es Ihnen ermöglichen, in VBA auf eine einzelne Bedingung zu testen, um festzustellen, ob die Bedingung wahr oder falsch ist, und abhängig von der Antwort bewegt sich der Code in Richtung der wahren oder falschen Aussage.

Eine einzelne IF-Anweisung

1234567891011 TeiltestIfDim x als Integerx = 10Wenn x = 10 dann'wenn x 10 ist, ist die Bedingung wahrMsgBox x ist 10"Anders'wenn x nicht 10 ist, ist die Bedingung falschMsgbox "x ist nicht 10"Ende WennEnd Sub

Verschachtelte IFs erklärt

Ein verschachteltes If ermöglicht es Ihnen, mehrere Bedingungen IN jede der True- und/oder False-Anweisungen des ursprünglichen If zu setzen.

1234567891011121314151617181920212223242526 UntertestNestedIf()Dim x als IntegerDim y als IntegerDim z als Integerx = 10y = 9z = 8Wenn x = 10 dann'wenn x 10 ist, ist die Bedingung wahr, also teste auf yWenn y = 8 dannMsgBox "y ist 9"Anders'wenn y nicht 10 ist, ist die Bedingung falschMsgbox "y ist nicht 9"Ende WennAnders'wenn x nicht 10 ist, dann ist die Bedingung falsch, also testen wir auf zWenn z = 8, dannMsgBox "z ist 8"Anders'wenn z nicht 8 ist, ist die Bedingung falschMsgbox "z ist nicht 10"Ende Wenn'another End If wird benötigt, um das Original if zu schließenEnde WennEnd Sub

Das Einrücken Ihres Codes beim Schreiben ist immer eine gute Praxis, da der Code dadurch leicht zu lesen und zu befolgen ist, wenn Sie irgendwann darauf zurückkommen oder ein anderer Programmierer ihn lesen muss.

Wir könnten auch eine benutzerdefinierte Funktion (UDF) erstellen und die Werte einiger Zellen aus Excel mithilfe von Parametern in die Funktion aufrufen.

1234567891011121314151617181920 Funktion GetIf(x als Integer, y als Integer, z als Integer) als StringWenn x = 10 dann'wenn x 10 ist, ist die Bedingung wahr, also teste auf yWenn y = 8 dannGetIf= "y ist 9"Anders'wenn y nicht 10 ist, ist die Bedingung falschGetIf="y ist nicht 9"Ende WennAnders'wenn x nicht 10 ist, dann ist die Bedingung falsch, also testen wir auf zWenn z = 8 dannGetIf="z ist 8"Anders'wenn z nicht 8 ist, ist die Bedingung falschGetIf="z ist nicht 10"Ende Wenn'another End If wird benötigt, um das Original if zu schließenEnde WennEndfunktion

Verschachteltes, wenn praktisches Beispiel

Betrachten Sie die folgende Funktion:

12345678910111213141516171819202122 Funktion GetDiscount(dblPrice As Double) As DoubleWenn dblPrice >= 1000 Dann'Wenn der Preis größer als 1000 ist, weisen Sie einen Rabatt zuWenn dblPrice >= 2000 Dann'wenn größer als 2000, geben Sie 10% RabattGetDiscount = dblPrice * 0.1Anders'sonst 5% Rabatt gebenGetDiscount = dblPrice * 0.05Ende Wenn'wenn der Preis nicht höher als 1000 istAnders'wenn größer als 500, geben Sie 2,5% RabattWenn dblPrice >= 500 DannGetDiscount = dblPrice * 0,025Anders'sonst kein RabattGetDiscount = 0Ende Wenn'another End If wird benötigt, um das Original if zu schließenEnde WennEndfunktion

Mit dieser Funktion in einer Excel-Tabelle können wir den Gesamtpreis einer Bestellung testen und je nach Gesamtbetrag unterschiedliche Rabatte anwenden.

VBA-Programmierung | Code Generator arbeitet für Sie!

Verwenden von ElseIf

ElseIf ermöglicht es uns, Ihren Code zu vereinfachen, da er nur zur zweiten if-Anweisung verschoben wird, wenn die erste ein false zurückgibt.

12345678910111213141516 Funktion GetDiscount(dblPrice As Double) As Double'benutze else if, um das Schreiben von Code zu reduzierenWenn dblPrice >= 2000 DannGetDiscount = dblPrice * 0.1ElseIf dblPrice >= 1000 ThenGetDiscount = dblPrice * 0.075ElseIf dblPrice >= 500 ThenGetDiscount = dblPrice * 0.05ElseIf dblPrice >= 200 ThenGetDiscount = dblPrice * 0,025ElseIf dblPrice >= 100 ThenGetDiscount = dblPrice * 0,01AndersGetDiscount = 0Ende WennEndfunktion

Verwenden einer Case-Anweisung

Wir können auch eine Case-Anweisung verwenden, um den gleichen Effekt zu erzielen.

1234567891011121314151617 Funktion GetDiscount(dblPrice As Double) As DoubleFall auswählen dblPrice'Diese Fallaussage hat 6 verschiedene RabattstufenFall ist >= 2000GetDiscount = dblPrice * 0.1Fall ist >= 1000GetDiscount = dblPrice * 0.075Fall ist >= 500GetDiscount = dblPrice * 0.05Fall ist >= 200GetDiscount = dblPrice * 0,025Fall ist >= 100GetDiscount = dblPrice * 0,01Fall sonstGetDiscount = 0Auswahl beendenEndfunktion

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave