VBA IIF - Kako uporabljati funkcijo VBA IIF v Excelu? (Naložljiva predloga)

Kazalo:

Anonim

Excel VBA IIF funkcija

VBA IIF (znan tudi kot takojšnji vnos) je izjava, ki ste jo pogosto videli med kodiranjem pod VBA in ustvarjanjem makrov. Podobno je s funkcijo IF Excel, kjer zapišete logični pogoj in poda dva izhoda, če je pogoj resničen in če je pogoj napačen. Če gledate nanjo, razmišljate kot funkcijo, podobno VBA IF, ki jo uporabljamo za ocenjevanje logičnih testov in pogojev, se motite. Zdi se, da je blizu VBA Če in v idealnem primeru lahko rečemo, da imajo med usmrtitvijo resnično majhno razliko. V tem članku bomo dobili več informacij o izjavi VBA IIF in kako jo uporabljati v vsakodnevnem življenju kodiranja, da bi olajšali svoje naloge.

Izjava VBA IIF deluje podobno kot izjava v Excelu IF. Preveri stanje ali zagotovljeno logično izjavo in daje izhod bodisi povezan s pogojem TRUE ali kadar je pogoj FALSE.

Sintaksa IIF v Excelu VBA

Sintaksa funkcije VBA IIF v excelu je naslednja:

Kje,

  • Izraz: je logično stanje, ki smo ga želeli oceniti v okviru IIF funkcije
  • TruePart: je vrednost / izhod, ki ga pričakujemo, ko je logični pogoj / izraz TRUE.
  • FalsePart: je vrednost / izhod, ki ga pričakujemo, ko je logični pogoj / izraz FALSE.

Kako uporabljati Excel VBA IIF?

Zdaj pa poskusimo z nekaj primeri o VBA IIF v Excelu.

Predlogo za VBA IIF Excel lahko prenesete tukaj - Predloga VBA IIF Excel

Vzemimo preprost primer, da vidimo, kako IIF deluje pod Microsoft VBA.

Primer # 1 - VBA IIF

1. korak: Odprite urejevalnik vizualnih osnov (VBE). Pojdite na zavihek Vstavljanje in kliknite Modul . V VBE bo dodal nov modul.

2. korak: Določite nov podproces, ki lahko vsebuje makro v tem modulu.

Koda:

 Pod IIf_Ex1 () Konec Pod 

Korak 3: Določite dve novi spremenljivki Var_1 kot Long in Result s podatkovnim tipom kot različico.

Koda:

 Pod IIf_Ex1 () Dim var_1 Kot dolg rezultat Res kot kot Boolean End Sub 

4. korak: Var_1 dodelite številčno vrednost, tako da bomo lahko s pomočjo te spremenljivke preverili logično stanje IIF.

Koda:

 Pod IIf_Ex1 () Dim var_1 Kot dolg rezultat Dim kot Boolean var_1 = 5 konec Sub 

5. korak: Uporabite spremenljivko Result za shranjevanje logičnega stanja IIF, v katerem bomo preverili, ali je vrednost, dodeljena Var_1, večja ali enaka 10.

Koda:

 Pod IIf_Ex1 () Dim var_1 Kot dolg rezultat Dim kot Boolean var_1 = 5 Rezultat = IIf (var_1> = 10, res, napačno) Konec Pod 

6. korak: Zdaj z Debug.Print natisnite rezultat stanja IIF na podoknu pregledovalnika neposrednih rezultatov.

Koda:

 Pod IIf_Ex1 () Dim var_1 Tako dolg rezultat Dim kot Boolean var_1 = 5 Rezultat = IIf (var_1> = 10, res, napačno) Debug.Print Result End Sub 

7. korak: Zaženite to kodo s pritiskom na tipko F5 ali Run na vrhu podokna in si oglejte izhod pod podoknom Takojšnji izhod.

Primer # 2 - VBA IIF

Recimo, da imamo podatke na delovnem listu na naslednji način:

Vse, kar hočemo, je izpis pod stolpcem B, tako da je število ali sodo ali liho.

1. korak: V VBE določite nov podproces.

Koda:

 Pod IIF_Ex2 () Konec Pod 

2. korak: Določite dve spremenljivki "a" in "Številki" kot dolgi.

Koda:

 Pod IIF_Ex2 () Dim a As Long Dim Number as Long End Sub 

3. korak: Zaženite zanko Za, pod katero želimo zabeležiti vse vrednosti, ki so prisotne v celici A2: A11. Zanka se bo začela od 2 do 11 (ker imamo stolpca v 1. vrstici za stolpca A in B).

Koda:

 Pod IIF_Ex2 () Dim a Dolžina Dim število, dokler je dolga od = 2 do 11 Konec pod 

4. korak: Uporabite prej določeno spremenljivko številk, da shranite vse številke iz stolpca A, ki se spreminjajo v danem obsegu z uporabo operaterja dodeljevanja (A2: A11). Za to uporabite naslednjo vrstico kode.

Število = Sheet1.Range ("A" & a)

Koda:

 Pod IIF_Ex2 () Dim a Dolžina Dim število, dokler je dolga od = 2 do 11 Število = Sheet1.Range ("A" & a) Konec pod 

Ta vrstica kode omogoča, da VBA poteka skozi vse vrstice v stolpcu A iz "Sheet1" v excelu, ena za drugo pod For zanko.

5. korak: Z IIF preverite, ali je vsaka vrednost celice enaka ali neparna, in shranite rezultate pod vsako celico stolpca B. Naslednja vrstica kode bo opravila nalogo za vas.

Sheet1.Range ("B" & a) .Value = IIf (Številka Mod 2 = 0, "Even", "Odd")

Koda:

 Pod IIF_Ex2 () Dim a Dolžina Dim število, dokler je a = 2 do 11 Število = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Število Mod 2 = 0, "Nekaj", "Neparno") End Sub 

V tej vrstici želimo, da se rezultati shranijo pod vsako celico stolpca B iz Sheet1. Zato smo na levi strani kode uporabili "Sheet1.Range (" B "& i) .Value". Z IIF smo preverili, ali je število s pomočjo Mod (operater Modulo pod VBA) deliti z 2. Na koncu želimo, da je v stolpcu B. število parnih ali neparnih, zato sta ti dve vrednosti navedeni v stavku IIF.

6. korak: Zaprite zanko For z Next, tako da se bo sistem po vsaki ponovitvi pomaknil proti naslednji celici na listu, dokler ne doseže 11. vrstice.

Koda:

 Pod IIF_Ex2 () Dim a Dolžina Dim število, dokler je a = 2 do 11 Število = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Število Mod 2 = 0, "Nekaj", "Nenavadno") Next End Sub 

7. korak: to je to. Zaženite to kodo s pritiskom na tipko F5 ali gumb Zaženi v zgornjem podoknu VBE. Ko zaženete ta makro, boste pod listom 1 (poimenovani kot "Primer_1") delovnega zvezka Excela videli rezultate kot spodaj.

Primer # 3 - VBA IIF

Zdaj bomo videli ugnezdeni stavek IIF:

Na enak način gnezdimo več pogojev IF v eni zanki.

Predpostavimo enake podatke, kot smo jih uporabili v prejšnjem primeru. Vse, kar smo želeli, je napisati kodo, ki nam omogoča, da ločimo številke na naslednji način:

  • Če je število med 1 in 3 (vključeno 3), mora v stolpcu B. omeniti »Majhno«.
  • Če je število med 4 in 6 (vključeno 6), mora v stolpcu B. omeniti "Srednje".
  • Če je število med 7 in 10 (vključeno 10), v stolpcu B. navedite "Veliko".

Napišite kodo za to vrsto IIF:

1. korak: V VBE določite nov podproces, ki lahko vsebuje vaš makro.

Koda:

 Sub NestedIf () Konec Sub 

Sledite korakom 2 do koraku 4 kot v zgornjem primeru (primer 2 v tem članku). Vključuje določitev spremenljivk in dodajanje vseh števil v stolpcu A pod zanko Za.

5. korak: S pomočjo spodnjega dela kode dobite želeni izhod.

Koda:

 Pod NestedIf () Dim Število, dokler je za = 2 do 11 Število = Sheet2.Range ("A" & a) Sheet2.Range ("B" & a) .Value = IIf (Število = 7, "Veliko", " Srednja ")) Končni pod 

6. korak: Zaprite zanko For z Next in zaženite to kodo s tipko F5 ali Run, ki je prisotna na zgornjem traku pod VBE. Ko zaženete kodo, boste videli izhod kot spodaj:

Tu se v tej kodi uporablja gnezdeni IIF. Pod prvim IIF smo dobili tisto, kar bi moralo biti natisnjeno v stolpcu B, ko so številke med 1 in 3. Pod drugim IIF smo omenili, kaj naj se tiska pod stolpcem B, če so številke večje od ali enake 7 in pod isti IIF, podali smo tisto, kar je treba natisniti v stolpcu B, če številke niso med 1 in 3 do 7 do 10.

Na ta način lahko pod isto kodo dodamo več IIF-jev in jih gnezdimo. To je to iz tega članka. Omotajmo si nekaj stvari, ki si jih je treba zapomniti.

Stvari, ki jih je treba zapomniti

  • IIF vedno oceni oba dela (TRUE in FALSE) za določen pogoj. Vendar pa lažni del natisne le, kadar nič ni TREN.
  • Pisanje je krajše kot pri standardnih stavkih If-Else.
  • To ni dobro znano, zato nekateri uporabniki morda ne bodo razumeli vaše kode, če ste uporabili IIF namesto običajnega If-Else.

Priporočeni članki

To je vodnik za VBA IIF. Tukaj smo razpravljali o tem, kako uporabljati Excel VBA IIF skupaj s praktičnimi primeri in naložljivo predlogo Excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. Delo z VBA Active Cell
  2. Brisanje vrstice v VBA
  3. Kako uporabljati Excel VBA Transpose?
  4. Kako popraviti napako 1004 pri uporabi VBA