Excel VBA IIF funkcija

VBA IIF (poznat i kao Neposredni If) je izjava koju ste često vidjeli dok kodirate pod VBA i kreirate makronaredbe. Slično je s Excelovom funkcijom IF gdje zapišete logički uvjet i daje dva izlaza, ako je uvjet istinit i ako je uvjet lažan. Ako gledajući na to razmišljate kao funkciju sličnu VBA IF koju koristimo za procjenu logičkih testova i uvjeta, griješite. Čini se da je blizu VBA Ako i u idealnom slučaju, može se reći da oni zaista imaju malu razliku između sebe tijekom izvršenja. U ovom ćemo članku dobiti više informacija o VBA IIF izjavi i kako je koristiti u našem svakodnevnom šifriranju kako bismo olakšali svoje zadatke.

Izjava VBA IIF djeluje slično kao i Excel IF izjava. Provjerava uvjet ili pruženu logičku izjavu i daje izlaz bilo povezan s uvjetom TRUE ili kada je uvjet FALSE.

Sintaksa IIF-a u Excelu VBA

Sintaksa funkcije VBA IIF u excelu je sljedeća:

Gdje,

  • Izraz: je logično stanje koje smo željeli procijeniti u okviru IIF funkcije
  • TruePart: je vrijednost / izlaz koji očekujemo kada je logični uvjet / izraz TRUE.
  • FalsePart: je vrijednost / izlaz koji očekujemo kada je logični uvjet / izraz FALSE.

Kako koristiti Excel VBA IIF?

Pokušajmo s nekim primjerima VBA IIF-a u Excelu.

Ovaj VBA IIF Excel predložak možete preuzeti ovdje - VBA IIF Excel predložak

Uzmimo jednostavan primjer da vidimo kako IIF radi pod Microsoft VBA.

Primjer br. 1 - VBA IIF

Korak 1: Otvorite Visual Basic Editor (VBE). Idite na karticu Umetanje i kliknite na Modul . Dodat će novi modul pod VBE.

Korak 2: Definirajte novi pod-postupak koji može sadržavati vaš makronaredbu u ovom modulu.

Kodirati:

 Pod IIf_Ex1 () Kraj Sub 

Korak 3: Definirajte dvije nove varijable Var_1 kao Long i Result s vrstom podataka kao varijantom.

Kodirati:

 Sub IIf_Ex1 () Dim var_1 Kao dugi rezultirajući dim kao boole end Sub 

Korak 4: Dodijelite brojčanu vrijednost Var_1 kako bismo mogli koristiti ovu varijablu za provjeru logičkog stanja IIF-a.

Kodirati:

 Sub IIf_Ex1 () Dim var_1 Kao dugi rezultat rezultata kao boole var_1 = 5 Kraj Sub 

Korak 5: Upotrijebite varijablu Result za spremanje logičkog stanja IIF-a pod kojim ćemo provjeriti je li vrijednost dodijeljena Var_1 veća od ili jednaka 10.

Kodirati:

 Sub IIf_Ex1 () Dim var_1 Kao dugi rezultat rezultata kao booleov var_1 = 5 rezultat = IIf (var_1> = 10, istina, lažno) Kraj Sub 

Korak 6: Sada koristite Debug.Print za ispis rezultata IIF stanja na oknu preglednika neposrednih rezultata.

Kodirati:

 Pod IIf_Ex1 () Dim var_1 Kao dugi rezultat kao dim Boolean var_1 = 5 Rezultat = IIf (var_1> = 10, istina, neistina) Debug.Print Result End Sub 

Korak 7: Pokrenite ovaj kôd pritiskom na tipku F5 ili Run na vrhu okna i pogledajte izlaz u oknu Neposredni izlaz.

Primjer br. 2 - VBA IIF

Pretpostavimo da na radnom listu imamo sljedeće podatke:

Sve što želimo je izlaz u stupcu B takav da je ili broj paran ili neparan.

Korak 1: Definirajte novi pod-postupak pod VBE.

Kodirati:

 Pod IIF_Ex2 () Kraj Sub 

Korak 2: Definirajte dvije varijable "a" i "Brojevi" kao duge.

Kodirati:

 Pod IIF_Ex2 () Dim a kao dugi dim kao dugi kraj Sub 

Korak 3: Pokrenimo petlju For za kojom želimo petljati sve vrijednosti prisutne u ćeliji A2: A11. Petlja će početi od 2 do 11 (jer u stupcima A i B imamo zaglavlja u prvom redu).

Kodirati:

 Pod IIF_Ex2 () Dim a kao dugi dim Broj dok je dug za a = 2 do 11 Kraj Sub 

Korak 4: Upotrijebite ranije definiranu varijablu broja za spremanje svih brojeva iz stupca A koji se razlikuju u danom rasponu pomoću operatora dodjele (A2: A11). Za to upotrijebite sljedeći redak koda.

Broj = Sheet1.Range ("A" & a)

Kodirati:

 Pod IIF_Ex2 () Dim a Dugi Dim Broj dok je dugi za a = 2 do 11 Broj = Sheet1.Range ("A" & a) Kraj Sub 

Ovaj redak koda omogućuje VBA da prođe kroz sve retke u stupcu A iz "Sheet1" u excelu, jedan po jedan pod For petlje.

Korak 5: Upotrijebite IIF da provjerite je li svaka vrijednost ćelije parna ili neparna i pohranite rezultate u svaku ćeliju stupca B. Sljedeći redak koda obavit će zadatak umjesto vas.

Sheet1.Range ("B" i a) .Value = IIf (Broj Mod 2 = 0, "Nepar", "Nepar")

Kodirati:

 Pod IIF_Ex2 () Dim a Dugi Dim Broj dok je dugi za = 2 do 11 Broj = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Broj Mod 2 = 0, "Par", "Nepar") Kraj Sub 

Ovdje, u ovom retku, želimo da se rezultati pohranjuju u svaku ćeliju stupca B iz Sheet1. Stoga smo s lijeve strane koristili „Sheet1.Range („ B ”& i) .Value”. Pomoću IIF-a provjerili je da li je broj djeljiv sa 2 pomoću Mod-a (Modulo operator pod VBA). Konačno, želimo dobiti izlaz da li je u stupcu B. parni ili neparni broj. Stoga se ove dvije vrijednosti spominju u IIF izjavi.

Korak 6: Zatvorite For petlju sljedećom izjavom, tako da će se nakon svake iteracije sustav pomicati prema sljedećoj ćeliji na listu, sve dok ne dosegne 11. red.

Kodirati:

 Pod IIF_Ex2 () Dim a Dugi Dim Broj dok je dugi za = 2 do 11 Broj = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Broj Mod 2 = 0, "Par", "Nepar") Sljedeći kraj Sub 

Korak 7: To je to. Pokrenite ovaj kôd pritiskom na tipku F5 ili Pokreni smješten u gornjem oknu VBE. Kad pokrenete ovaj makronaredbu, vidjet ćete izlaz dolje ispod sheet1 (nazvan "Example_1") Excelove radne knjige.

Primjer br. 3 - VBA IIF

Sada ćemo vidjeti ugniježđen IIF iskaz:

To je isti način na koji gnijezimo više uvjeta IF-a u jednoj petlji.

Pretpostavimo iste podatke kao i u prethodnom slučaju. Sve što smo željeli je napisati kôd koji nam omogućava da razlikujemo brojeve kako slijedi:

  • Ako je broj između 1 i 3 (uključeno 3), u stupcu B. treba navesti "Mali".
  • Ako je broj između 4 i 6 (uključeno 6), u stupcu B. treba navesti "Medium".
  • Ako je broj između 7 i 10 (10 uključuje), u stupcu B. treba navesti "Veliko".

Napišemo kod za ovu vrstu IIF-a:

Korak 1: U VBE definirajte novi podpostupak koji može sadržavati vaš makronaredbu.

Kodirati:

 Sub NestedIf () Kraj Sub 

Slijedite korak 2 do korak 4 isto kao u gornjem primjeru (primjer 2 u ovom članku). To uključuje definiranje varijabli i dodavanje svih brojeva prisutnih u stupcu A ispod petlje For.

Korak 5: Upotrijebite sljedeći dio koda da biste dobili željeni izlaz.

Kodirati:

 Pod NestedIf () Dim. Broj kao dugačak za = 2 do 11 broj = Sheet2.Range ("A" & a) Sheet2.Range ("B" & a) .Value = IIf (Broj = 7, "Veliki", " Srednja ")) Kraj Sub 

Korak 6: Zatvorite For petlju sljedećom izjavom i pokrenite ovaj kôd pomoću tipke F5 ili Pokreni prisutne na gornjoj vrpci ispod VBE. Jednom kada pokrenete kod, vidjet ćete izlaz kao što slijedi:

Ovdje se u ovom kodu koristi ugniježđeni IIF. Pod prvim IIF-om daje nam se ono što treba ispisati u stupcu B kada su brojevi između 1 i 3. Pod drugim IIF-om spomenuli smo šta treba ispisati u stupcu B kada su brojevi veći od ili jednaki 7, a ispod isti IIF, dali smo ono što treba ispisati u stupcu B kada brojevi nisu između 1 do 3 i 7 do 10.

Na ovaj način možemo dodati više IIF-ova pod istim kodom i gnijezditi ih. To je to iz ovog članka. Umotajmo stvar u neke stvari koje se pamte.

Stvari koje treba zapamtiti

  • IIF uvijek procjenjuje oba dijela (TRUE i FALSE) za određeni uvjet. Međutim, ona ispisuje ZAVRŠNI dio samo kad ništa nije TRUE.
  • Pisanje je skraćeno od uobičajenog If-Else iskaza.
  • To nije dobro poznato, stoga neki korisnik možda neće razumjeti vaš kôd ako ste koristili IIF umjesto konvencionalnog If-Else.

Preporučeni članci

Ovo je vodič za VBA IIF. Ovdje smo raspravljali o tome kako koristiti Excel VBA IIF uz praktične primjere i preuzeti Excel predložak. Možete i pregledati naše druge predložene članke -

  1. Rad s VBA Active Cell
  2. Brisanje retka u VBA
  3. Kako se koristi Excel VBA Transpose?
  4. Kako popraviti pogrešku 1004 pomoću VBA

Kategorija: