VBA IIF | Kuidas kasutada VBA IIF-i funktsiooni Excelis? (koos näidetega)

Exceli VBA IIF

Kui olete VBA makrode tavaline kasutaja, peate olema kohanud funktsiooni nimega "IIF" või võite seda funktsiooni Internetis näha. Esmapilgul võisite arvata, et see on IF-i tingimus nagu meie tavaline IF-lause Excelis. Kuid see pole sama IF-lause, mida kasutame loogiliste testide hindamiseks ja tulemuste saamiseks meie antud kriteeriumide alusel. Selles artiklis tutvustame teid VBA tingimuse „VBA IIF” kaudu.

Mida teeb IIF-i seisund VBA-s?

See on väga sarnane meie IF tingimustega, kuid olemuselt veidi erinev. „VBA IIF” tingimus testib kaasasolevat avaldist või loogilist testi ja tagastab tulemuseks kas TÕENE või VALE.

VBA IIF süntaks

Vaadake funktsiooni IIF süntaksit.

  • Väljend: see pole midagi muud kui loogiline test, mille tahaksime läbi viia.
  • Ture osa: kui loogiline test on TÕSI, siis mis peaks olema TÕE osa tulemus.
  • Vale osa: kui loogiline test on FALSE, siis mis peaks olema FALSE osa tulemus.

Saame oma tulemused sisestada tõeliste ja valede osadega. Kuigi argumendid näevad välja sarnased IF tingimuse omaga, on see veidi erinev. Näeme seda funktsiooni Exceli VBA IIF näidetes.

Üks peamisi erinevusi tavalise IF-i ja selle IIF-i vahel on see, et saame IIF-iga koodi lühendada ühele reale, kus IF-tingimuste korral kulub sama tulemuse saamiseks vähemalt 5 rida.

Näide funktsioonist VBA IIF

Allpool on toodud näited VBA IIF-i funktsioonist excelis.

Selle VBA IIF Exceli malli saate alla laadida siit - VBA IIF Exceli mall

Näide # 1 - VBA IIF

Ok, näeme ühte lihtsat näidet IIF-funktsioonist. Nüüd testime, kas üks number on suurem või väiksem kui teine ​​number. VBA koodi kirjutamiseks järgige alltoodud samme.

1. samm: käivitage makro.

2. samm: määrake muutuja VBA-s stringiks.

Kood:

 Alamfond IIF_Example () Dim FinalResult as String End Sub 

3. samm: määrake VBA-s veel kaks muutujat pikkaks.

Kood:

 Alamfond IIF_Näide () Dim FinalResult stringina hämaruse arv1 nii pikk hämara number2 kui pika otsa alam 

4. samm: määrake muutujale „Number1” väärtus 105 ja muutujale „Number2” väärtus 100.

Kood:

 Alam IIF_Näide () Dim FinalResult stringina hämarusnumber1 nii pikk hämarusnumber2 kui pikk arv1 = 105 number2 = 100 lõpp-alam 

Samm 5: Nüüd määrame esimese määratletud muutuja “FinalResult” jaoks IIF-funktsiooni tulemuse. Niisiis avage muutuja jaoks IIF.

6. samm: sisestage avaldis kui Number1> Number2.

7. samm: kui tulemus on tõene, siis mis peaks olema tulemus. Tulemuse määran järgmiselt: "Number 1 on suurem kui Number 2".

8. samm: kui tulemus on FALSE, siis milline peaks olema tulemus. Tulemuse määran järgmiselt: "Number 1 on väiksem kui Number 2".

Nüüd on muutuja väärtus üks järgmistest.

Kui tõene: „number 1 on suurem kui arv 2”

Kui vale: „Number 1 on väiksem kui arv 2”

9. samm: näitame tulemust VBA teatekastis.

Kood:

 Alamfond IIF_Näide () Dim FinalResult, nagu string string Dim Number1, nii pikk Dim Number2, kui pikk number1 = 105 number2 = 100 FinalResult = IIf (arv1> arv2, "number 1 on suurem kui arv 2", "arv 1 on väiksem kui arv 2") MsgBox FinalResult End Sub 

Nüüd käivitame koodi ja näeme tulemust.

Kuna number 1 väärtus on 105, mis on suurem kui number 2 väärtus 100, saime tulemuse kui "Number 1 on suurem kui arv 2". Kuna avaldis on TÕENE, andis IIF-i tingimus selle tulemuse.

Näide 2 - IF vs IIF

Te peate kindlasti mõtlema, mis vahe on IF-l ja IIF-il. Jah, kodeerimisel on erinevus. Näiteks vaadake IF tingimuse koodi.

Kood:

 Alamfond IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 Kui Number1> Number2 Siis MsgBox "Number 1 on suurem kui Number 2" Muu MsgBox "Number 1 on väiksem kui Number 2" End If Lõpeta alam 

Esmalt IF-i kasutades oleme rakendanud loogilise testi.

 Kui Number1> Number2 Siis 

Siis, kui loogiline test vastab tõele, oleme tulemuse rakendanud.

MsgBox "Number 1 on suurem kui number 2"

Kui loogiline test on vale, oleme kasutanud erinevaid tulemusi.

MsgBox "Number 1 on väiksem kui number 2"

Mõlemad funktsioonid tagastavad sama tulemuse, kuid IIF-iga saame kodeerida ainult ühel real, kus IF-lause nõuab mitut rida.

Näide # 3 - VBA pesastatud IIF-i tingimus

Sarnaselt sellele, kuidas kasutame pesastatud IF-d mitme tingimuse testimiseks, võime kasutada ka mitut IIF-i. Heitke pilk allpool olevale koodile.

Kood:

 II alamf_näide2 () Dim FinalResult stringina Hämarad märgid pikkade märkidena = 98 FinalResult = IIf (märgid> 90, "Dist", IIf (märgid> 80, "esimene", IIf (märgid> 70, "teine", IIf (märgid) > 60, "kolmas", "ebaõnnestunud")))) MsgBox FinalResult End Sub 

Ülaltoodud IIF-i tingimus testib viit loogilist testi ja tagastab selle tulemuse.


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