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 -malli

Esimerkki # 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.


$config[zx-auto] not found$config[zx-overlay] not found