Excel VBA IIF -toiminto

VBA IIF (tunnetaan myös nimellä välitön if) on lause, jonka olet ehkä nähnyt koodaamalla VBA: n alla ja luomalla makroja. Se on samanlainen kuin Excelin IF-toiminto, jossa kirjoitat loogisen ehdon ja antaa kaksi lähtöä, jos ehto on totta ja jos ehto on väärä. Jos katsot sitä, ajattelet sitä samanlaisena funktiona kuin VBA IF, jota käytämme arvioimaan loogisia testejä ja olosuhteita, olet erehtynyt. Se näyttää olevan lähellä VBA: ta Jos ja ihannetapauksessa voidaan sanoa, että niiden välillä on todella pieni ero suorituksen aikana. Tässä artikkelissa saamme lisätietoja VBA IIF -lausunnosta ja siitä, kuinka sitä voidaan käyttää päivittäisessä koodauselämässämme tehtävien helpottamiseksi.

VBA IIF -käsky toimii samalla tavalla kuin Excel IF -käsky. Se tarkistaa tarjotun ehdon tai loogisen lausunnon ja antaa lähtön joko liittyneenä ehtoon TOSI tai kun ehto on Väärä.

IIF: n syntaksi Excel VBA: ssa

VBA IIF -toiminnan syntaksi excelissa on seuraava:

Missä,

  • Lauseke: on looginen ehto, jonka halusimme arvioida IIF-toiminnon alla
  • TruePart: on odotettu arvo / tulos, kun looginen ehto / lauseke on Tosi.
  • FalsePart: on odotettu arvo / tuotos, kun looginen ehto / lauseke on FALSE.

Kuinka käyttää Excel VBA IIF: tä?

Kokeile nyt joitain esimerkkejä VBA IIF: stä Excelissä.

Voit ladata tämän VBA IIF Excel -mallin tästä - VBA IIF Excel Template

Otetaanpa yksinkertainen esimerkki, kuinka IIF toimii Microsoft VBA: n alla.

Esimerkki 1 - VBA IIF

Vaihe 1: Avaa Visual Basic Editor (VBE). Siirry Lisää- välilehteen ja napsauta moduulia . Se lisää uuden moduulin VBE-kohtaan.

Vaihe 2: Määritä uusi aliproseduuri, joka voi pitää makroasi tässä moduulissa.

Koodi:

 Sub IIf_Ex1 () Loppu Sub 

Vaihe 3: Määritä kaksi uutta muuttujaa Var_1 pitkäksi ja tulokseksi datatyypillä varianttina.

Koodi:

 Sub IIf_Ex1 () Dim var_1 Niin kauan Dim Tulos kuin Boolean End Sub 

Vaihe 4: Määritä numeroarvo Var_1: lle, jotta voimme käyttää tätä muuttujaa loogisen IIF-tilan tarkistamiseen.

Koodi:

 Sub IIf_Ex1 () Himma var_1 Niin kauan himmeänä tulos kuin looginen var_1 = 5 End Sub 

Vaihe 5: Käytä tulosmuuttujaa tallentaaksesi loogisen IIF-tilan, jossa tarkistamme, onko Var_1: lle määritetty arvo suurempi tai yhtä suuri kuin 10.

Koodi:

 Sub IIf_Ex1 () Himma var_1 yhtä kauan himmeänä tuloksena loogisena var_1 = 5 Tulos = IIf (var_1> = 10, tosi, väärä) End Sub 

Vaihe 6: Käytä nyt Debug.Print-tulosta tulostaaksesi IIF-tilan tuloksen välittömään tulosnäyttöruutuun.

Koodi:

 Sub IIf_Ex1 () Himma var_1 Niin kauan himmeänä tuloksena kuin looginen var_1 = 5 Tulos = IIf (var_1> = 10, totta, vääriä) Debug.Print -tulos Loppu Sub 

Vaihe 7: Suorita tämä koodi napsauttamalla ruudun yläosassa olevaa F5- tai Suorita-painiketta ja katso lähtö välittömän tulosteen paneelista.

Esimerkki 2 - VBA IIF

Oletetaan, että meillä on taulukon alla olevat tiedot seuraavasti:

Tarvitsemme vain sarakkeessa B olevan tuloksen, niin että joko luku on parillinen tai pariton.

Vaihe 1: Määritä uusi alamenettely VBE: n avulla.

Koodi:

 Sub IIF_Ex2 () Loppu Sub 

Vaihe 2: Määritä kaksi muuttujaa “a” ja “Numerot” pitkiksi.

Koodi:

 Sub IIF_Ex2 () himmentää yhtä pitkä himmennys kuin pitkä pää alaosaan 

Vaihe 3: Käynnistä a-silmukalle, jonka alle haluamme silmukoida kaikki solussa A2: A11 olevat arvot. Silmukka alkaa välillä 2-11 (koska meillä on otsikot rivillä 1 sarakkeille A ja B).

Koodi:

 Sub IIF_Ex2 () himmentää yhtä kauan himmennysmäärä niin kauan, kun a = 2 - 11 Loppu alaosaan 

Vaihe 4: Käytä aikaisemmin määriteltyä numeromuuttujaa tallentaaksesi kaikki sarakkeen A numerot, jotka vaihtelevat annetulla alueella käyttämällä toimeksiantajaa (A2: A11). Käytä seuraavaa koodiriviä tehdäksesi niin.

Numero = Arkki1.Range (“A” ja a)

Koodi:

 Sub IIF_Ex2 () himmentää yhtä kauan himmentävää numeroa niin kauan kuin = 2 - 11 numero = arkki1.Range ("A" & a) End Sub 

Tämän koodirivin avulla VBA voi suorittaa kaikki A-sarakkeen A-rivit läpi yksi kerrallaan For-silmukan alla.

Vaihe 5: Käytä IIF: tä tarkistaaksesi, onko kunkin solun arvo parillinen vai pariton, ja tallenna tulokset jokaisen sarakkeen B soluun. Seuraava koodirivi tekee tehtävän puolestasi.

Sheet1.Range (“B” ja a) .Value = IIf (numero Mod 2 = 0, “parillinen”, “pariton”)

Koodi:

 Sub IIF_Ex2 () himmentää yhtä kauan himmennys yhtä kauan kuin = 2 - 11 numero = arkki1.Range ("A" & a) arkki1.Range ("B" & a) .Value = IIf (luku Mod 2 = 0, "Parillinen", "Pariton") End Sub 

Tässä rivissä haluamme tulosten tallentavan Arkin1 sarakkeen B jokaisen solun alle. Siksi käytimme ”Sheet1.Range (“ B ”& i) .Value” koodin vasemmalla puolella. Käytimme IIF: llä tarkistaaksesi, onko numero jaettavissa 2: lla Modilla (Modulo-operaattori VBA: lla). Lopuksi haluamme tuloksen siitä, onko luku parillinen vai pariton sarakkeessa B. Siksi nämä kaksi arvoa mainitaan IIF-lauseessa.

Vaihe 6: Sulje For-silmukka seuraavalla lauseella niin, että jokaisen iterauksen jälkeen järjestelmä siirtyy kohti seuraavaa arkin solua, kunnes se saavuttaa 11. rivin.

Koodi:

 Sub IIF_Ex2 () himmentää yhtä kauan himmennys yhtä kauan kuin = 2 - 11 numero = arkki1.Range ("A" & a) arkki1.Range ("B" & a) .Value = IIf (luku Mod 2 = 0, "Parillinen", "Pariton") Seuraava loppu Sub 

Vaihe 7: Tässä se on. Suorita tämä koodi napsauttamalla F5- tai Suorita-painiketta VBE: n ylimmässä ruudussa. Kun olet suorittanut tämän makron, näet seuraavan tulosteen Excel-työkirjan arkin1 (nimeltään ”Esimerkki_1”) alla.

Esimerkki 3 - VBA IIF

Näemme sisäkkäisen IIF-käskyn nyt:

Tämä on sama tapa kuin pesämme useita IF-olosuhteita yhdessä silmukassa.

Oletetaan samat tiedot kuin mitä käytimme edellisessä tapauksessa. Halusimme vain kirjoittaa koodin, jonka avulla voimme erottaa numerot seuraavasti:

  • Jos luku on välillä 1 - 3 (3 mukaan lukien), sen tulisi mainita sarakkeessa B ”Pieni”.
  • Jos luku on välillä 4–6 (6 mukaan lukien), sen tulisi mainita sarakkeessa B ”Medium”.
  • Jos luku on välillä 7–10 (10 mukaan lukien), sen tulisi mainita sarakkeessa B ”Suuri”.

Kirjoitetaan koodi tämän tyyppiselle IIF: lle:

Vaihe 1: Määritä uusi aliproseduuri VBE: stä, joka voi pitää makroasi.

Koodi:

 Sub NestedIf () Lopeta Sub 

Seuraa vaiheita 2 - 4 samalla tavalla kuin yllä olevassa esimerkissä (tämän artikkelin esimerkki 2). Se sisältää muuttujien määrittelemisen ja kaikkien sarakkeessa A olevien numeroiden lisäämisen For For -silmukan alle.

Vaihe 5: Käytä seuraavaa koodinumeroa saadaksesi haluttu tulos.

Koodi:

 Sub NestedIf () Himmennys niin kauan kuin = 2 - 11 Lukumäärä = Sheet2.Range ("A" & a) Sheet2.Range ("B" & a) .Value = IIf (Number = 7, "Large", " Medium ")) End Sub 

Vaihe 6: Sulje For-silmukka Next-lauseella ja suorita tämä koodi käyttämällä F5- tai Suorita-painiketta yläreunassa, VBE: n alla. Kun olet suorittanut koodin, näet seuraavan tuloksen:

Tässä koodissa käytetään sisäkkäistä IIF: ää. Ensimmäisessä IIF: ssä annetaan se, mitä tulisi tulostaa B-sarakkeeseen, kun numerot ovat välillä 1 - 3. Toisessa IIF: ssä mainitsimme, mitä tulisi tulostaa B-sarakkeeseen, kun luvut ovat suurempia tai yhtä suuret kuin 7 ja Samassa IIF: ssä toimitimme, mitä tulisi tulostaa sarakkeeseen B, kun numerot eivät ole välillä 1 - 3 ja 7 - 10.

Tällä tavoin voimme lisätä useita IIF-koodeja samaan koodiin ja sijoittaa ne toisiinsa. Tämä on se tästä artikkelista. Käärittäkää juttu muistettaviin asioihin.

Muistettavat asiat

  • IIF arvioi aina molemmat osat (TRUE ja FALSE) tietylle tilalle. Kuitenkin, se tulostaa FALSE-osan vain, kun mikään ei ole Tosi.
  • Kirjoittamista lyhennetään kuin tavanomaisissa If-Else -lausekkeissa.
  • Sitä ei tunneta hyvin, joten jotkut käyttäjät eivät ehkä ymmärrä koodiasi, jos olet käyttänyt IIF: ää perinteisen If-Else -sovelluksen sijasta.

Suositellut artikkelit

Tämä on opas VBA IIF: ään. Tässä keskustellaan siitä, miten Excel VBA IIF -sovellusta voidaan käyttää yhdessä käytännön esimerkkien ja ladattavan Excel-mallin kanssa. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. Yhteistyö VBA Active Cell -sovelluksen kanssa
  2. Rivin poistaminen VBA: sta
  3. Kuinka käyttää Excel VBA -siirtoa?
  4. Kuinka korjata 1004 -virhe VBA: n avulla

Luokka: