VBA IIF - Cum se folosește funcția VBA IIF în Excel? (cu exemple)

Cuprins

Excel VBA IIF

Dacă sunteți un utilizator obișnuit de macrocomenzi VBA, atunci trebuie să fi întâlnit funcția numită „IIF” sau este posibil să fi văzut această funcție pe internet. La prima vedere, pentru că trebuie să fi crezut că este o condiție IF, cum ar fi declarația noastră obișnuită IF în Excel. Dar aceasta nu este aceeași afirmație IF pe care o folosim pentru a evalua testele logice și pentru a obține rezultate pe baza criteriilor pe care le oferim. În acest articol, vă vom prezenta starea „VBA IIF” din VBA.

Ce face starea IIF în VBA?

Acest lucru este foarte asemănător cu starea noastră IF, dar ușor diferit în natură. Condiția „VBA IIF” testează expresia furnizată sau testul logic și a returnat fie TRUE, fie FALSE ca rezultat.

Sintaxa VBA IIF

Aruncați o privire la sintaxa funcției IIF.

  • Expresie: Acesta nu este altceva decât testul logic pe care am vrea să îl realizăm.
  • Partea Ture: Dacă testul logic este ADEVĂRAT, atunci care ar trebui să fie partea ADEVĂRATĂ.
  • Partea falsă: Dacă testul logic este FALS, atunci care ar trebui să fie rezultatul părții FALSE.

Putem introduce propriile noastre rezultate cu piese ADEVĂRATE ȘI FALSE. Deși argumentele arată similar cu cel al condiției IF, acest lucru va fi ușor diferit. Vom vedea asta în exemplele funcției Excel VBA IIF.

Una dintre diferențele cheie dintre „IF” obișnuit și acest „IIF” este că putem reduce codul la o singură linie cu I undewithwith condiție IF și este nevoie de cel puțin 5 linii pentru a obține același rezultat.

Exemplu de funcție VBA IIF

Mai jos sunt exemple de funcții VBA IIF în excel.

Exemplul # 1 - VBA IIF

Ok, vom vedea un exemplu simplu de funcție IIF. Acum vom testa dacă un număr este mai mare sau mai mic decât un alt număr. Urmați pașii de mai jos pentru a scrie codul VBA.

Pasul 1: Porniți macrocomanda.

Pasul 2: definiți variabila ca Șir în VBA.

Cod:

Sub IIF_Example () Dim FinalResult As String End Sub

Pasul 3: Definiți încă două variabile ca Long în VBA.

Cod:

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

Pasul 4: Acum, pentru variabila „Numărul1” atribuiți valoarea 105 și pentru variabila „Numărul2” atribuiți valoarea 100.

Cod:

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

Pasul 5: Acum, pentru prima variabilă definită, „FinalResult”, vom atribui rezultatul funcției IIF. Deci, deschideți IIF pentru variabilă.

Pasul 6: furnizați expresia ca Number1> Number2.

Pasul 7: Acum, dacă expresia este ADEVĂRATĂ, care ar trebui să fie rezultatul. Voi atribui rezultatul ca „Numărul 1 este mai mare decât Numărul 2”.

Pasul 8: Acum, dacă expresia este FALSĂ, care ar trebui să fie rezultatul. Voi atribui rezultatul ca „Numărul 1 este mai mic decât Numărul 2”.

Acum, valoarea variabilă va fi una dintre cele de mai jos.

Dacă este adevărat: „Numărul 1 este mai mare decât numărul 2.”

Dacă este fals: „Numărul 1 este mai mic decât numărul 2.”

Pasul 9: Să arătăm rezultatul într-o casetă de mesaje în VBA.

Cod:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As 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

Acum să rulăm codul și să vedem rezultatul.

Deoarece valoarea numărului 1 este 105, care este mai mare decât valoarea numărului 2 de 100, am obținut rezultatul ca „numărul 1 este mai mare decât numărul 2”. Deoarece Expresia este TRUE, condiția IIF a returnat acest rezultat.

Exemplul # 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"

Ambele funcții returnează același rezultat, dar cu IIF, putem codifica doar într-o singură linie, unde instrucțiunea IF necesită mai multe linii.

Exemplul # 3 - VBA Nested IIF Condition

La fel cum folosim IF imbricat pentru a testa mai multe condiții în mod similar, putem folosi și IIF multiple. Aruncați o privire la codul de mai jos.

Cod:

Sub IIF_Example2 () Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf (Mărci> 90, "Dist", IIf (Mărci> 80, "Primul", IIf (Mărci> 70, "Al doilea", IIf (Mărci > 60, "Third", "Fail")))) MsgBox FinalResult End Sub

Condiția IIF de mai sus testează cinci teste logice și returnează rezultatul în consecință.

Articole interesante...