VBA IIF | Kuinka käyttää VBA IIF -toimintoa Excelissä? (esimerkkien kanssa)
Excel VBA IIF
Jos olet säännöllinen VBA-makrojen käyttäjä, sinun on täytynyt törmätä toimintoon nimeltä IIF tai olet nähnyt tämän toiminnon Internetissä. Ensi silmäyksellä, sillä sinun on pitänyt ajatella, että se on IF-ehto, kuten tavallinen IF-lauseke Excelissä. Mutta tämä ei ole sama IF-lause, jota käytämme arvioidaksemme loogisia testejä ja saavuttaaksemme tuloksia antamiemme kriteerien perusteella. Tässä artikkelissa tutustutaan VBA: n ”VBA IIF” -ehtoon.
Mitä IIF-tila tekee VBA: ssa?
Tämä on hyvin samanlainen kuin IF-tila, mutta luonteeltaan hieman erilainen. ”VBA IIF” -ehto testaa toimitetun lausekkeen tai loogisen testin ja palauttaa tulokseksi joko TOSI tai EPÄTOSI.
VBA IIF -syntaksi
Katso IIF-funktion syntaksia.
- Lauseke: Tämä ei ole muuta kuin looginen testi, jonka haluaisimme suorittaa.
- Ture-osa: Jos looginen testi on TOSI, minkä pitäisi olla TOSI-osan tulos.
- Väärä osa: Jos looginen testi on EPÄTOSI, minkä pitäisi olla FALSE-osan tulos.
Voimme syöttää omat tulokset TOSI & EPÄTOSI-osilla. Vaikka argumentit näyttävät samanlaisilta kuin IF-olosuhteet, tämä on hieman erilainen. Näemme sen Excel VBA IIF -funktion esimerkeissä.
Yksi tärkeimmistä eroista tavallisen "IF": n ja tämän "IIF: n" välillä on, että voimme pienentää koodin yhdeksi riviksi IIF: llä, jos IF-ehdolla saman tuloksen saaminen vaatii vähintään 5 riviä.
Esimerkki VBA IIF -toiminnosta
Alla on esimerkkejä VBA IIF -toiminnosta excelissä.
Voit ladata tämän VBA IIF Excel -mallin täältä - VBA IIF Excel -malliEsimerkki # 1 - VBA IIF
Ok, näemme yhden yksinkertaisen esimerkin IIF-toiminnosta. Nyt testataan, onko yksi luku suurempi tai pienempi kuin toinen luku. Kirjoita VBA-koodi noudattamalla seuraavia ohjeita.
Vaihe 1: Käynnistä makro.
Vaihe 2: Määritä muuttuja merkkijonoksi VBA: ssa.
Koodi:
Sub IIF_Example () Dim FinalResult As String End Sub
Vaihe 3: Määritä kaksi muuta muuttujaa pitemmäksi VBA: ssa.
Koodi:
Osa IIF_Example () Himmennä lopputulos merkkijonona Himmennysnumero1 yhtä pitkä himmenemisnumero2 kuin pitkä pääosa
Vaihe 4: Määritä nyt muuttujalle ”Number1” arvo 105 ja muuttujalle ”Number2” arvo 100.
Koodi:
Osa IIF_esimerkki () Himmennä lopullinen tulos merkkijonona Himmennetty numero1 niin pitkä himmeä numero2 yhtä pitkä numero1 = 105 numero2 = 100 loppuosa
Vaihe 5: Ensimmäiselle määritetylle muuttujalle ”FinalResult” osoitetaan nyt IIF-funktion tulos. Joten avaa IIF muuttujalle.
Vaihe 6: Anna lauseke nimellä Numero1> Luku2.
Vaihe 7: Jos lauseke on TOSI, minkä pitäisi olla tulos. Annan tuloksen nimellä "Numero 1 on suurempi kuin Numero 2".
Vaihe 8: Jos lauseke on EPÄTOSI, minkä pitäisi olla tulos. Tulokseksi määritetään "Numero 1 on pienempi kuin numero 2".
Nyt muuttujan arvo on jompikumpi alla olevista.
Jos Tosi: "Luku 1 on suurempi kuin Luku 2"
Jos väärä: "Numero 1 on pienempi kuin numero 2"
Vaihe 9: Näytetään tulos VBA: n viestiruudussa.
Koodi:
Osa IIF_esimerkki () Himmennä lopullinen tulos merkkijonona Himmennetty luku1 yhtä pitkä himmeä numero2 yhtä pitkä numero1 = 105 numero2 = 100 FinalResult = IIf (luku1> luku2, "numero 1 on suurempi kuin numero 2", "numero 1 on pienempi kuin numero 2") MsgBox FinalResult End Sub
Suoritetaan nyt koodi ja katsotaan tulos.
Koska Numero 1 -arvo on 105, joka on suurempi kuin Numero 2 -arvo 100, saimme tuloksen "Numero 1 on suurempi kuin Numero 2". Koska lauseke on TOSI, IIF-ehto palautti tämän tuloksen.
Esimerkki # 2 - IF vs. IIF
Sinun on mietittävä, mikä ero IF & IIF: n välillä on. Kyllä, koodauksessa on eroja. Katso esimerkiksi IF-ehtokoodi.
Koodi:
Ala IIF_esimerkki () Himmennä lopputulos merkkijonona Himmennetty numero1 niin pitkä himmeä numero2 yhtä pitkä numero1 = 105 numero2 = 100 jos luku1> numero2 sitten MsgBox "numero 1 on suurempi kuin numero 2" muu MsgBox "numero 1 on pienempi kuin numero 2" loppu jos " End Sub
IF: n avulla olemme ensin soveltaneet loogista testiä.
Jos Luku1> Luku2 Sitten
Jos looginen testi on totta, olemme soveltaneet tulosta.
MsgBox "Numero 1 on suurempi kuin numero 2"
Jos looginen testi on väärä, olemme soveltaneet erilaisia tuloksia.
MsgBox "Numero 1 on pienempi kuin numero 2"
Molemmat toiminnot palauttavat saman tuloksen, mutta IIF: n avulla voimme koodata vain yhdellä rivillä, jos IF-käsky vaatii useita rivejä.
Esimerkki # 3 - VBA sisäkkäinen IIF-tila
Samoin kuin käytämme sisäkkäistä IF: tä useiden olosuhteiden testaamiseen, voimme käyttää myös useita IIF: itä. Katso alla oleva koodi.
Koodi:
Osa IIF_esimerkki2 () Hämärä lopputulos merkkijonona Hämärät merkit niin pitkiä = 98 Lopullinen tulos = IIf (Merkit> 90, "Dist", IIf (Merkit> 80, "Ensimmäinen", IIf (Merkit> 70, "Toinen", IIf (Merkit) > 60, "Kolmas", "Epäonnistunut")))) MsgBox FinalResult End Sub
Edellä oleva IIF-ehto testaa viisi loogista testiä ja palauttaa tuloksen vastaavasti.