VBA IIF - Hur använder jag VBA IIF-funktionen i Excel? (med exempel)

Innehållsförteckning

Excel VBA IIF

Om du är en vanlig användare av VBA-makron måste du ha stött på funktionen som kallas "IIF", annars har du kanske sett den här funktionen på internet. Vid första anblicken, för du måste ha trott att det är ett IF-tillstånd som vårt vanliga IF-uttalande i Excel. Men det här är inte samma IF-uttalande som vi använder för att utvärdera logiska tester och få resultat baserat på de kriterier vi ger. I den här artikeln tar vi dig igenom "VBA IIF" -villkoret i VBA.

Vad gör IIF-tillstånd i VBA?

Detta liknar mycket vårt IF-tillstånd, men något annorlunda. "VBA IIF" -test testar det angivna uttrycket eller det logiska testet och returnerade antingen SANT eller FALSK som ett resultat.

VBA IIF Syntax

Ta en titt på syntaxen för IIF-funktionen.

  • Uttryck: Detta är inget annat än det logiska testet vi vill göra.
  • Ture-del: Om det logiska testet är SANT, vad ska då vara SANT-delen.
  • Falsk del: Om det logiska testet är FALSE, vad ska då vara resultatet av FALSE-delen.

Vi kan skriva in våra egna resultat med Sanna och falska delar. Även om argument liknar det för IF-villkoret kommer det att vara något annorlunda. Vi kommer att se det i exemplen på Excel VBA IIF-funktionen.

En av de viktigaste skillnaderna mellan vanlig "IF" och denna "IIF" är att vi kan reducera koden till en enda rad med Iwherewithwith IF-tillstånd, och det tar minst 5 rader för att nå samma resultat.

Exempel på VBA IIF-funktion

Nedan följer exemplen på VBA IIF-funktionen i Excel.

Exempel # 1 - VBA IIF

Ok, vi ser ett enkelt exempel på IIF-funktion. Nu ska vi testa om ett nummer är större än eller mindre än till ett annat nummer. Följ stegen nedan för att skriva VBA-koden.

Steg 1: Starta makrot.

Steg 2: Definiera variabeln som sträng i VBA.

Koda:

Sub IIF_Example () Dim FinalResult som strängens slut sub

Steg 3: Definiera ytterligare två variabler som Lång i VBA.

Koda:

Sub IIF_Example () Dim FinalResult Som sträng Dim Number1 Som Long Dim Number2 Som Long End Sub

Steg 4: Tilldela nu värdet 105 för variabeln "Number1" och för variabel "Number2" tilldela värdet 100.

Koda:

Sub IIF_Exempel () Dim slutresultat som sträng dimnummer1 Så långt dimnummer2 Så långt nummer1 = 105 nummer2 = 100 slut sub

Steg 5: Nu tilldelar vi för den första definierade variabeln "FinalResult" resultatet av IIF-funktionen. Så öppna IIF för variabeln.

Steg 6: Ange uttrycket som Number1> Number2.

Steg 7: Vad ska resultatet bli om uttrycket är SANT? Jag kommer att tilldela resultatet som "Nummer 1 är större än nummer 2".

Steg 8: Vad ska resultatet bli om uttrycket är FALSKT? Jag kommer att tilldela resultatet som "Nummer 1 är mindre än nummer 2".

Nu kommer variabelvärdet att vara något av nedanstående.

Om det är sant: ”Nummer 1 är större än nummer 2.”

If False: ”Nummer 1 är mindre än nummer 2.”

Steg 9: Låt oss visa resultatet i en meddelandefält i VBA.

Koda:

Sub IIF_Exempel () Dim slutresultat som sträng dim nummer1 så långt dim nummer2 så långt nummer1 = 105 nummer2 = 100 slutresultat = IIf (nummer1> nummer2, "nummer 1 är större än nummer 2", "nummer 1 är mindre än nummer 2") MsgBox FinalResult End Sub

Låt oss nu köra koden och se resultatet.

Eftersom Nummer 1-värdet är 105, vilket är större än Nummer 2-värdet på 100, fick vi resultatet som "Nummer 1 är större än nummer 2". Eftersom uttrycket är SANT returnerade IIF-tillståndet detta resultat.

Exempel # 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"

Båda funktionerna ger samma resultat, men med IIF kan vi bara koda i en enda rad där IF-satsen kräver flera rader.

Exempel # 3 - VBA Nested IIF-tillstånd

Liksom hur vi använder kapslade IF för att testa flera förhållanden på samma sätt, kan vi också använda flera IIF. Ta en titt på koden nedan.

Koda:

Sub IIF_Example2 () Dim FinalResult Som sträng Dim Marks As Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks) > 60, "Tredje", "Misslyckas")))) MsgBox FinalResult End Sub

Ovanstående IIF-tillstånd testar fem logiska tester och returnerar resultatet därefter.

Intressanta artiklar...