VBA IIF | Paano Gumamit ng VBA IIF Function sa Excel? (na may mga Halimbawa)

Excel VBA IIF

Kung ikaw ang regular na gumagamit ng VBA macros dapat ay nahanap mo ang pagpapaandar na tinatawag na "IIF" o maaaring nakita mo ang pagpapaandar na ito sa internet. Sa unang tingin, para sa dapat naisip mo na ito ay isang kundisyon na KUNG tulad ng aming regular na KUNG pahayag sa Excel. Ngunit hindi ito pareho ng pahayag na KUNG ginagamit namin upang suriin ang mga lohikal na pagsubok at makarating sa mga resulta batay sa mga pamantayan na ibinibigay namin. Sa artikulong ito, dadalhin ka namin sa kundisyon ng "VBA IIF" sa VBA.

Ano ang Ginagawa ng Kondisyon ng IIF sa VBA?

Ito ay halos kapareho sa aming kundisyon sa Kundisyon ngunit bahagyang naiiba sa likas na katangian. Sinusubukan ng kundisyon na "VBA IIF" ang ibinigay na ekspresyon o lohikal na pagsubok at nagbabalik alinman sa TUNAY o MALI bilang resulta.

VBA IIF Syntax

Tingnan ang syntax ng pagpapaandar ng IIF.

  • Pagpapahayag: Ito ay walang iba kundi ang lohikal na pagsubok na nais naming isagawa.
  • Ture Bahagi: Kung ang lohikal na pagsubok ay TUNAY kung gayon ano ang dapat na resulta ng TUNAY na bahagi.
  • Maling Bahagi: Kung ang lohikal na pagsubok ay MALI kung gayon ano ang dapat na resulta ng MALI na bahagi.

Maaari naming ipasok ang aming sariling mga resulta sa TUNAY at MALI na mga bahagi. Kahit na ang mga argumento ay katulad ng sa Kundisyon na KUNG magkakaiba-iba ito. Makikita natin iyon sa mga halimbawa ng pagpapaandar ng Excel VBA IIF.

Ang isa sa mga pangunahing pagkakaiba sa pagitan ng regular na "KUNG" at ang "IIF" na ito ay maaari nating bawasan ang code sa isang solong linya na may IIF kung saan sa Kundisyon na KUNG tumatagal ng isang minimum na 5 linya upang makarating sa parehong resulta.

Halimbawa ng VBA IIF Function

Nasa ibaba ang mga halimbawa ng VBA IIF Function sa excel.

Maaari mong i-download ang VBA IIF Excel Template dito - VBA IIF Excel Template

Halimbawa # 1 - VBA IIF

Ok, makikita natin ang isang simpleng halimbawa ng pagpapaandar ng IIF. Ngayon ay susubukan namin kung ang isang numero ay mas malaki kaysa o mas mababa kaysa sa isa pang numero. Sundin ang mga hakbang sa ibaba upang isulat ang VBA code.

Hakbang 1: Simulan ang macro.

Hakbang 2: Tukuyin ang variable bilang String sa VBA.

Code:

 Sub IIF_Example () Dim FinalResult Bilang String End Sub 

Hakbang 3: Tukuyin ang dalawa pang mga variable bilang Long sa VBA.

Code:

 Sub IIF_Example () Dim FinalResult Bilang String Dim Number1 Bilang Long Dim Number2 Bilang Long End Sub 

Hakbang 4: Ngayon para sa variable na "Number1" italaga ang halaga ng 105 at para sa variable na "Number2" italaga ang halaga ng 100.

Code:

 Sub IIF_Example () Dim FinalResult Bilang String Dim Number1 Bilang Long Dim Number2 Bilang Long Number1 = 105 Number2 = 100 End Sub 

Hakbang 5: Ngayon para sa unang tinukoy na variable na "FinalResult" itatalaga namin ang resulta ng pagpapaandar ng IIF. Kaya buksan ang IIF para sa variable.

Hakbang 6: Ibigay ang expression bilang Bilang1> Bilang2.

Hakbang 7: Ngayon kung ang ekspresyon ay TOTOO ano ang dapat na resulta. Itatalaga ko ang resulta bilang "Ang bilang 1 ay mas malaki kaysa sa Numero 2".

Hakbang 8: Ngayon kung ang expression ay MALI ano dapat ang resulta. Itatalaga ko ang resulta bilang "Ang bilang 1 ay mas mababa sa Bilang 2".

Ngayon ang halaga ng variable ay maaaring alinman sa isa sa ibaba.

Kung totoo: Ang "Numero 1 ay mas malaki kaysa sa Numero 2"

Kung Mali: Ang "Numero 1 ay mas mababa sa Numero 2"

Hakbang 9: Ipakita natin ang resulta sa isang kahon ng mensahe sa VBA.

Code:

 Sub IIF_Example () Dim FinalResult Bilang String Dim Number1 Bilang Long Dim Number2 Bilang Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is Less than Number 2") MsgBox FinalResult End Sub 

Patakbuhin natin ngayon ang code at tingnan ang resulta.

Dahil ang halagang Numero 1 ay 105 na mas malaki kaysa sa bilang na 2 na halaga ng 100 nakuha namin ang resulta bilang "Ang Numero 1 ay Mas Mahusay kaysa sa Numero 2". Dahil Totoo ang Ekspresyon, ibinalik ng kundisyon ng IIF ang resulta na ito.

Halimbawa # 2 - KUNG vs IIF

Dapat ay nagtataka ka kung ano ang pagkakaiba sa pagitan ng IF & IIF. Oo, may pagkakaiba sa pag-coding. Halimbawa, tingnan ang code ng kundisyon na KUNG.

Code:

 Sub IIF_Example () Dim FinalResult Bilang String Dim Number1 Bilang Long Dim Number2 Bilang Long Number1 = 105 Number2 = 100 Kung Number1> Number2 Kung gayon ang MsgBox "Number 1 ay mas Malaki kaysa sa Number 2" Else MsgBox "Number 1 ay mas mababa sa Number 2" End If Wakas Sub 

Gamit ang KUNG una ay nag-apply kami ng isang lohikal na pagsubok.

 Kung Bilang1> Bilang2 Pagkatapos 

Kung gayon kung totoo ang lohikal na pagsubok na inilapat namin ang resulta.

MsgBox "Ang Numero 1 ay Mas Mahusay kaysa sa Numero 2"

Kung gayon kung ang lohikal na pagsubok ay mali inilapat namin ang iba't ibang mga resulta.

MsgBox "Ang Numero 1 ay Mas Mababa sa Numero 2"

Parehong ibabalik ng mga pagpapaandar ang parehong resulta ngunit sa IIF maaari kaming mag-code sa isang solong linya lamang, kung saan ang pahayag na KUNG nangangailangan ng maraming mga linya.

Halimbawa # 3 - Kundisyon ng VBA Nest IIF

Tulad ng kung paano namin ginagamit ang pugad KUNG upang masubukan ang maraming mga kondisyon nang katulad maaari din naming magamit ang maraming IIF. Tingnan ang code sa ibaba.

Code:

 Sub IIF_Example2 () Dim FinalResult Bilang String Dim Marks Bilang Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks > 60, "Pangatlo", "Nabigo")))) MsgBox FinalResult End Sub 

Ang kondisyon sa IIF sa itaas ay sumusubok sa limang lohikal na pagsubok at ibabalik ang resulta nang naaayon.