VBA IIF - Hoe de VBA IIF-functie in Excel te gebruiken? (met voorbeelden)

Inhoudsopgave

Excel VBA IIF

Als u een regelmatige gebruiker van VBA-macro's bent, moet u de functie "IIF" zijn tegengekomen, anders heeft u deze functie misschien op internet gezien. Op het eerste gezicht, want je moet hebben gedacht dat het een IF-voorwaarde is zoals onze reguliere IF-instructie in Excel. Maar dit is niet dezelfde IF-instructie die we gebruiken om logische tests te evalueren en tot resultaten te komen op basis van de criteria die we geven. In dit artikel nemen we u mee door de voorwaarde "VBA IIF" in VBA.

Wat doet de IIF-conditie in VBA?

Dit lijkt erg op onze IF-conditie, maar is iets anders van aard. De voorwaarde "VBA IIF" test de geleverde uitdrukking of logische test en retourneert als resultaat TRUE of FALSE.

VBA IIF-syntaxis

Bekijk de syntaxis van de IIF-functie.

  • Uitdrukking: dit is niets anders dan de logische test die we zouden willen uitvoeren.
  • Ture Part: Als de logische test WAAR is, wat zou dan het WAAR gedeelte moeten zijn.
  • False Part: Als de logische test FALSE is, wat zou dan het resultaat moeten zijn van het FALSE part.

We kunnen onze eigen resultaten invoeren met TRUE & FALSE-onderdelen. Hoewel argumenten lijken op die van de ALS-voorwaarde, zal dit iets anders zijn. We zullen zien dat in de voorbeelden van Excel VBA IIF-functie.

Een van de belangrijkste verschillen tussen gewone "IF" en deze "IIF" is dat we de code kunnen terugbrengen tot een enkele regel met Iwaarmee met de IF-voorwaarde, en er zijn minimaal 5 regels nodig om hetzelfde resultaat te krijgen.

Voorbeeld van VBA IIF-functie

Hieronder staan ​​de voorbeelden van VBA IIF-functie in Excel.

Voorbeeld # 1 - VBA IIF

Ok, we zullen een eenvoudig voorbeeld van de IIF-functie zien. Nu gaan we testen of een getal groter of kleiner is dan een ander getal. Volg de onderstaande stappen om de VBA-code te schrijven.

Stap 1: Start de macro.

Stap 2: definieer de variabele als String in VBA.

Code:

Sub IIF_Example () Dim FinalResult As String End Sub

Stap 3: Definieer nog twee variabelen als Long in VBA.

Code:

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

Stap 4: Wijs nu voor de variabele "Number1" de waarde 105 toe en voor variabele "Number2" de waarde van 100.

Code:

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

Stap 5: Nu zullen we voor de eerste gedefinieerde variabele, "FinalResult", het resultaat van de IIF-functie toewijzen. Dus open de IIF voor de variabele.

Stap 6: Geef de uitdrukking op als Getal1> Getal2.

Stap 7: Als de uitdrukking WAAR is, wat zou dan het resultaat moeten zijn. Ik zal het resultaat toewijzen als "Nummer 1 is groter dan Nummer 2".

Stap 8: Als de uitdrukking FALSE is, wat zou het resultaat dan moeten zijn. Ik zal het resultaat toewijzen als "Nummer 1 is kleiner dan Nummer 2".

Nu is de variabele waarde een van de onderstaande.

Indien waar: "Nummer 1 is groter dan nummer 2."

Indien False: "Nummer 1 is kleiner dan nummer 2."

Stap 9: Laten we het resultaat in een berichtvenster in VBA weergeven.

Code:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is groter dan Number 2", "Number 1 is less than Number 2") MsgBox FinalResult End Sub

Laten we nu de code uitvoeren en het resultaat bekijken.

Omdat de waarde van nummer 1 105 is, wat groter is dan de waarde van nummer 2 van 100, krijgen we het resultaat als "Nummer 1 is groter dan nummer 2". Omdat de expressie TRUE is, heeft de IIF-voorwaarde dit resultaat geretourneerd.

Voorbeeld # 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 functies retourneren hetzelfde resultaat, maar met IIF kunnen we alleen op één regel coderen, waarbij de IF-instructie meerdere regels vereist.

Voorbeeld # 3 - VBA geneste IIF-voorwaarde

Net als hoe we geneste IF gebruiken om meerdere voorwaarden op dezelfde manier te testen, kunnen we ook meerdere IIF gebruiken. Bekijk de onderstaande code.

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

De bovenstaande IIF-voorwaarde test vijf logische tests en retourneert het resultaat dienovereenkomstig.

Interessante artikelen...