VBA IIF - Kuinka käyttää VBA IIF -toimintoa Excelissä? (esimerkkien kanssa)

Sisällysluettelo

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 ehkä 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 antoi 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-osa.
  • Väärä osa: Jos looginen testi on EPÄTOSI, minkä FALSE-osan pitäisi olla tulos.

Voimme syöttää omat tulokset TOSI & EPÄTOSI-osilla. Vaikka argumentit näyttävät samanlaisilta kuin IF-ehto, 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 Iwherewithwith IF -edellytyksellä, ja saman tuloksen saaminen vaatii vähintään 5 riviä.

Esimerkki VBA IIF -toiminnosta

Alla on esimerkkejä VBA IIF -toiminnosta excelissä.

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ä lopullinen tulos merkkijonona Himmennetty numero1 yhtä pitkä himmeä numero2 kuin pitkä pää

Vaihe 4: Määritä muuttujalle ”Numero1” arvo 105 ja muuttujalle ”Numero2” 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”, määritämme nyt IIF-toiminnon tuloksen. 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:

Ala IIF_esimerkki () Himmennä lopullinen tulos merkkijonona Himmennetty numero1 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 nimellä "Luku 1 on suurempi kuin Luku 2". Koska lauseke on TOSI, IIF-ehto palautti tämän tuloksen.

Esimerkki # 2 - IF vs. IIF

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

Sub IIF_Example() Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 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 samalla tavalla, 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.

Mielenkiintoisia artikkeleita...