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 TemplateOtetaanpa 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 -
- Yhteistyö VBA Active Cell -sovelluksen kanssa
- Rivin poistaminen VBA: sta
- Kuinka käyttää Excel VBA -siirtoa?
- Kuinka korjata 1004 -virhe VBA: n avulla