VBA IIF - Hur använder man VBA IIF-funktion i Excel? (Nedladdningsbar mall)

Innehållsförteckning:

Anonim

Excel VBA IIF-funktion

VBA IIF (även känd som omedelbar om) är ett uttalande som du ofta har sett när du kodar under VBA och skapade makron. Det liknar Excel's IF-funktion där du skriver ned ett logiskt villkor och ger två utgångar, om villkoret är sant och om villkoret är falskt. Om du ser det som en funktion som liknar VBA IF som vi använder för att utvärdera logiska tester och förhållanden, tar du fel. Det verkar vara nära VBA Om och helst kan man säga att de verkligen har en liten skillnad mellan dem under körningen. I den här artikeln kommer vi att få mer information om VBA IIF-uttalanden och hur man använder det i vår dagliga kodningsliv för att göra våra uppgifter enklare.

VBA IIF-uttalandet fungerar på samma sätt som Excel IF-uttalandet. Den kontrollerar tillhandahållet eller logiskt uttalande och ger utmatning antingen associerad med villkoret SANT eller när villkoret är FALSE.

Syntax av IIF i Excel VBA

Syntaxen för VBA IIF-funktion i Excel är som följer:

Var,

  • Uttryck: är det logiska tillståndet vi ville utvärdera under IIF-funktionen
  • TruePart: är det värde / utgång vi förväntar oss när det logiska villkoret / uttrycket är SANT.
  • FalsePart: är det värde / utgång vi förväntar oss när det logiska villkoret / uttrycket är FALSE.

Hur använder jag Excel VBA IIF?

Låt oss nu prova med några exempel på VBA IIF i Excel.

Du kan ladda ner denna VBA IIF Excel-mall här - VBA IIF Excel-mall

Låt oss ta ett enkelt exempel för att se hur IIF fungerar under Microsoft VBA.

Exempel 1 - VBA IIF

Steg 1: Öppna en Visual Basic Editor (VBE). Gå till Infoga- fliken och klicka på Modul . Den kommer att lägga till en ny modul under VBE.

Steg 2: Definiera en ny delprocedur som kan hålla ditt makro i den här modulen.

Koda:

 Sub IIf_Ex1 () Slut Sub 

Steg 3: Definiera två nya variabler Var_1 som lång och Resultat med datatyp som en variant.

Koda:

 Sub IIf_Ex1 () Dim var_1 Så länge Dim Result Som Boolean End Sub 

Steg 4: Tilldela ett numeriskt värde till Var_1 så att vi kan använda denna variabel för att kontrollera det logiska IIF-tillståndet.

Koda:

 Sub IIf_Ex1 () Dim var_1 Så länge Dim Result Som Boolean var_1 = 5 End Sub 

Steg 5: Använd Resultatvariabel för att lagra det logiska IIF-tillståndet under vilket vi ska kontrollera om värdet tilldelat Var_1 är större än eller lika med 10.

Koda:

 Sub IIf_Ex1 () Dim var_1 Så länge Dim Result Som Boolean var_1 = 5 Resultat = IIf (var_1> = 10, True, False) End Sub 

Steg 6: Använd nu Debug.Print för att skriva ut resultatet av IIF-tillstånd i visningsfönstret för omedelbart resultat.

Koda:

 Sub IIf_Ex1 () Dim var_1 Så länge Dim Result Som Boolean var_1 = 5 Resultat = IIf (var_1> = 10, True, False) Debug.Print Resultat End Sub 

Steg 7: Kör den här koden genom att trycka på F5 eller Knappknappen längst upp i fönstret och se utgången under Omedelbar utgångsruta.

Exempel 2 - VBA IIF

Anta att vi har data under kalkylbladet enligt följande:

Allt vi vill ha är en utgång under kolumn B så att antingen är jämnt eller udda.

Steg 1: Definiera en ny delprocedur under VBE.

Koda:

 Sub IIF_Ex2 () Slut Sub 

Steg 2: Definiera två variabler “a” och “Nummer” som långa.

Koda:

 Sub IIF_Ex2 () Dim en så lång dim nummer som lång slut Sub 

Steg 3: Starta en For-slinga under vilken vi vill slinga alla värden som finns i cell A2: A11. Loop startar från 2 till 11 (eftersom vi har rubriker i rad 1 för kolumn A och B).

Koda:

 Sub IIF_Ex2 () Dim en så lång dim nummer så lång för a = 2 till 11 End Sub 

Steg 4: Använd nummervariabel som har definierats tidigare för att lagra alla siffror från kolumn A som varierar på det givna intervallet med tilldelningsoperatör (A2: A11). Använd följande kodrad för att göra det.

Antal = ark1.Range (“A” & a)

Koda:

 Sub IIF_Ex2 () Dim en så lång dim-nummer så lång för a = 2 till 11-nummer = ark1.Range ("A" & a) End Sub 

Denna kodrad gör det möjligt för VBA att köra igenom alla raderna i kolumn A från “Sheet1” i excel en efter en under For loop.

Steg 5: Använd IIF för att kontrollera om varje cellvärde är jämnt eller udda och lagra resultaten under varje cell i kolumn B. Följande kodrad kommer att göra uppgiften åt dig.

Ark1.Range (“B” & a) .Värde = IIf (Nummer Mod 2 = 0, “Jämnt”, “Udda”)

Koda:

 Sub IIF_Ex2 () Dim en så lång dim nummer så lång för a = 2 till 11 nummer = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Number Mod 2 = 0, "Jämnt", "Udda") End Sub 

Här i den här raden vill vi att resultaten ska lagras under varje cell i kolumn B från ark 1. Därför använde vi ”Sheet1.Range (“ B ”& i) .Value” på vänster sida av kodstycket. Vi använde IIF för att kontrollera om numret är delbart med 2 med Mod (Modulo-operatör under VBA). Slutligen vill vi ha utmatningen om antalet är jämnt eller udda i kolumn B. Därför nämns dessa två värden under IIF-uttalandet.

Steg 6: Stäng For-loopen med nästa sats så att systemet efter varje iteration rör sig mot nästa cell i arket tills det når den 11: e raden.

Koda:

 Sub IIF_Ex2 () Dim en så lång dim nummer så lång för a = 2 till 11 nummer = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Number Mod 2 = 0, "Jämnt", "Udda") Nästa slut Sub 

Steg 7: Det här är det. Kör den här koden genom att trycka på F5 eller Run-knappen placerad i den översta rutan på VBE. När du har kört detta makro ser du en utgång enligt nedan under ark1 (benämnd som "Exempel_1") i Excel-arbetsbok.

Exempel 3 - VBA IIF

Vi kommer att se ett kapslat IIF-uttalande nu:

Detta är på samma sätt som vi häckar flera IF-förhållanden i en enda slinga.

Anta samma data som vi använde i föregående fall. Allt vi ville är att skriva en kod som gör att vi kan skilja mellan siffror enligt följande:

  • Om siffran är mellan 1 och 3 (3 ingår) ska det nämnas ”Liten” under kolumn B.
  • Om siffran är mellan 4 och 6 (6 ingår) ska det anges ”Medium” under kolumn B.
  • Om siffran är mellan 7 och 10 (10 ingår) ska det nämnas ”Stor” under kolumn B.

Låt oss skriva en kod för den här typen av IIF:

Steg 1: Definiera en ny delprocedur under din VBE som kan hålla ditt makro.

Koda:

 Sub NestedIf () Slut Sub 

Följ steg 2 till steg 4 samma som i exemplet ovan (exempel 2 i den här artikeln). Det inkluderar att definiera variabler och lägga till alla siffror som finns i kolumn A under en For-loop.

Steg 5: Använd följande kodkod för att få önskad utgång.

Koda:

 Sub NestedIf () Dim Number Så länge för a = 2 till 11 Number = Sheet2.Range ("A" & a) Sheet2.Range ("B" & a) .Value = IIf (Number = 7, "Large", " Medium ")) End Sub 

Steg 6: Stäng For loop med nästa sats och kör denna kod med F5 eller Run-knappen som finns i det övre bandet under VBE. När du har kört koden ser du produktionen enligt nedan:

Här, i den här koden, används den kapslade IIF. Under den första IIF får vi vad som ska skrivas ut under kolumn B när siffrorna är mellan 1 och 3. Under andra IIF nämnde vi vad som ska skrivas ut under kolumn B när siffrorna är större än eller är lika med 7 och under samma IIF, vi tillhandahöll vad som ska skrivas ut under kolumn B när siffrorna inte är mellan 1 och 3 och 7 till 10.

På detta sätt kan vi lägga till flera IIF: er under samma kod och häcka dem. Det här är från den här artikeln. Låt oss packa upp saken med några saker att komma ihåg.

Saker att komma ihåg

  • IIF utvärderar alltid båda delarna (SANT och FALSE) för ett visst tillstånd. Det skriver emellertid endast FALSE-delen när ingenting är SANT.
  • Skrivandet är förkortat än standardförklaringen om ifall andra.
  • Det är inte väl känt, därför kanske vissa användare inte förstår din kod om du har använt IIF istället för konventionell If-Else.

Rekommenderade artiklar

Detta är en guide till VBA IIF. Här diskuterar vi hur du använder Excel VBA IIF tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Arbetar med VBA Active Cell
  2. Radera en rad i VBA
  3. Hur använder jag Excel VBA-transponering?
  4. Hur du åtgärdar 1004-fel vid användning av VBA