Excel Funcția VBA IIF
VBA IIF (cunoscut și sub denumirea de Immediate If) este o afirmație pe care ați putea să o vedeți deseori în timp ce codați sub VBA și creați macrocomenzi. Este asemănătoare funcției IF Excel, în cazul în care notează o condiție logică și dă două ieșiri, dacă condiția este adevărată și dacă condiția este falsă. Dacă privindu-l, îl gândești ca pe o funcție similară cu VBA IF pe care o folosim pentru a evalua testele și condițiile logice, greșești. Pare a fi aproape de VBA Dacă și, în mod ideal, se poate spune că într-adevăr au o mică diferență între ele în timpul execuției. În acest articol, vom obține mai multe informații despre declarația VBA IIF și cum să o utilizăm în viața noastră de codare zilnică pentru a ne face sarcinile mai ușoare.
Instrucțiunea VBA IIF funcționează similar cu declarația Excel IF. Verifică condiția sau declarația logică furnizată și dă o ieșire fie asociată cu condiția TRUE, fie când condiția este FALSE.
Sintaxa IIF în Excel VBA
Sintaxa funcției VBA IIF în excel este următoarea:
Unde,
- Expresie: este condiția logică pe care am dorit să o evaluăm sub funcția IIF
- TruePart: este valoarea / ieșirea pe care o așteptăm, atunci când condiția / expresia logică este TRUE.
- FalsePart: este valoarea / ieșirea pe care o așteptăm, atunci când condiția / expresia logică este FALSE.
Cum se utilizează Excel VBA IIF?
Acum să încercăm cu câteva exemple despre VBA IIF în Excel.
Puteți descărca acest șablon Excel VBA IIF aici - Șablonul Excel VBA IIFSă luăm un exemplu simplu pentru a vedea cum funcționează IIF sub Microsoft VBA.
Exemplul # 1 - VBA IIF
Pasul 1: Deschideți un editor Visual Basic (VBE). Accesați fila Insert și faceți clic pe Modul . Acesta va adăuga un nou modul sub VBE.
Pasul 2: Definiți o nouă sub-procedură care vă poate reține macro-ul în acest modul.
Cod:
Sub IIf_Ex1 () End Sub
Pasul 3: Definiți două variabile noi Var_1 ca lung și rezultat cu tipul de date ca o variantă.
Cod:
Sub IIf_Ex1 () Dim var_1 Cât timp Dim Rezultat Ca Boolean End Sub
Pasul 4: Alocați o valoare numerică lui Var_1, astfel încât să putem utiliza această variabilă pentru a verifica starea IIF logică.
Cod:
Sub IIf_Ex1 () Dim var_1 Cât timp Dim Rezultat Ca boolean var_1 = 5 End Sub
Pasul 5: Utilizați variabila Rezultat pentru a stoca condiția logică IIF în care vom verifica dacă valoarea atribuită lui Var_1 este mai mare sau egală cu 10.
Cod:
Sub IIf_Ex1 () Dim var_1 Cât de lung Dim Rezultat Ca boolean var_1 = 5 Rezultat = IIf (var_1> = 10, Adevărat, Fals) Final Sub
Pasul 6: Acum, utilizați Debug.Print pentru a imprima rezultatul condiției IIF pe panoul vizualizator de rezultate imediat.
Cod:
Sub IIf_Ex1 () Dim var_1 Atât de lung Dim Rezultat Ca boolean var_1 = 5 Rezultat = IIf (var_1> = 10, Adevărat, Fals) Debug.Print Rezultat Final Sub
Pasul 7: Rulați acest cod apăsând butonul F5 sau Run din partea de sus a panoului și vedeți ieșirea sub panoul de ieșire imediată.
Exemplul # 2 - VBA IIF
Să presupunem că avem date în fișa de lucru după cum urmează:
Tot ce ne dorim este o ieșire sub coloana B, astfel încât, fie numărul este par sau impar.
Pasul 1: Definiți o nouă procedură sub VBE.
Cod:
Sub IIF_Ex2 () End Sub
Pasul 2: Definiți două variabile „a” și „Numere” ca Long.
Cod:
Sub IIF_Ex2 () Dim a Număr Dim As Long End Sub Sub End End
Pasul 3: Începeți o buclă For sub care dorim să buclăm toate valorile prezente în celula A2: A11. Bucla va începe de la 2 la 11 (pentru că avem anteturile din rândul 1 pentru coloanele A și B).
Cod:
Sub IIF_Ex2 () Dim a cât de lung Dim Număr de lung pentru a = 2 până la 11 End Sub
Pasul 4: Utilizați variabila de număr definită anterior pentru a stoca toate numerele din coloana A care variază pe intervalul dat folosind operatorul de alocare (A2: A11). Utilizați următoarea linie de cod pentru a face acest lucru.
Number = Sheet1.Range („A” & a)
Cod:
Sub IIF_Ex2 () Dim Un cât mai lung Dim Număr cât timp pentru un = 2 până la 11 Număr = Foaie1.Rang ("A" & a) End Sub
Această linie de cod permite VBA să parcurgă toate rândurile din coloana A de la „Sheet1” în excel unul câte unul sub bucla For.
Pasul 5: Folosiți IIF pentru a verifica dacă fiecare valoare a celulei este pară sau impară și stoca rezultatele sub fiecare celulă a coloanei B. Următoarea linie de cod va face sarcina pentru dvs.
Sheet1.Range („B” & a) .Value = IIf (Numărul Mod 2 = 0, „Par”, „Impar”)
Cod:
Sub IIF_Ex2 () Dim un cât mai lung Dim Număr cât timp pentru a = 2 până la 11 număr = Foaie1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Număr Mod 2 = 0, "Par", "ciudat") End Sub
Aici, în această linie, dorim ca rezultatele să fie stocate sub fiecare celulă a coloanei B din foaia1. Prin urmare, am folosit „Sheet1.Range („ B ”& i) .Value” în partea stângă a piesei de cod. Am folosit IIF pentru a verifica dacă numărul este divizibil cu 2 folosind Mod (operator Modulo sub VBA). În sfârșit, dorim ieșirea cu privire la numărul dacă este egal sau par în coloana B. Prin urmare, aceste două valori sunt menționate în declarația IIF.
Pasul 6: Închideți bucla For cu Next, astfel încât după fiecare iterație, sistemul să se deplaseze spre următoarea celulă din foaie, până când ajunge la al 11- lea rând.
Cod:
Sub IIF_Ex2 () Dim un cât mai lung Dim Număr cât timp pentru a = 2 până la 11 număr = Foaie1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Număr Mod 2 = 0, "Par", "ciudat") Următorul punct final
Pasul 7: Acesta este. Rulați acest cod apăsând pe butonul F5 sau pe butonul Run, plasat în panoul superior al VBE. După ce executați această macro, veți vedea o ieșire ca mai jos în foaia1 (numită „Exemplu_1”) din cartea de lucru excel.
Exemplul # 3 - VBA IIF
Vom vedea o declarație IIF cuibărită acum:
Acesta este același mod în care cuibărim mai multe condiții IF într-o singură buclă.
Să presupunem aceleași date pe care le-am folosit în cazul precedent. Tot ce am dorit este să scriem un cod care să ne permită să distingem între numere după cum urmează:
- Dacă numărul este cuprins între 1 și 3 (3 Inclus), trebuie menționat „Mic” sub coloana B.
- Dacă numărul este cuprins între 4 și 6 (6 Inclus), trebuie menționat „Mediu” sub coloana B.
- Dacă numărul este cuprins între 7 și 10 (10 incluse), trebuie menționat „Mare” sub coloana B.
Să scriem un cod pentru acest tip de IIF:
Pasul 1: Definiți o nouă procedură sub VBE care vă poate reține macro.
Cod:
Sub NestedIf () End Sub
Urmați pasul 2 până la pasul 4 la fel ca în exemplul de mai sus (Exemplul 2 din acest articol). Include definirea variabilelor și adăugarea tuturor numerelor prezente în coloana A sub o buclă For.
Pasul 5: Folosiți următoarea bucată de cod pentru a obține rezultatul dorit.
Cod:
Sub NestedIf () Num Dim Dim As Long for a = 2 To 11 Number = Sheet2.Range ("A" & a) Sheet2.Range ("B" & a) .Value = IIf (Number = 7, "Large", " Mediu ")) End Sub
Pasul 6: Închideți bucla For cu Next și rulați acest cod folosind butonul F5 sau Run, prezent pe panglica superioară sub VBE. După ce executați codul, veți vedea ieșirea ca mai jos:
Aici, în acest cod, se utilizează IIF cuibărit. În cadrul primului IIF, ni se oferă ceea ce ar trebui tipărit sub coloana B atunci când numerele sunt cuprinse între 1 și 3. În secunda IIF, am menționat ce ar trebui să fie tipărit sub coloana B atunci când numerele sunt mai mari sau egale cu 7 și sub același IIF, am furnizat ceea ce ar trebui să fie tipărit sub coloana B atunci când numerele nu sunt cuprinse între 1 până la 3 și 7-10.
În acest fel, putem adăuga mai multe FII sub același cod și să le cuibăm. Acesta este din acest articol. Haideți să încheiem lucrul cu câteva lucruri de amintit.
Lucruri de amintit
- IIF evaluează întotdeauna ambele părți (ADEVĂRAT și FALS) pentru o anumită stare. Cu toate acestea, imprimă partea FALSE doar atunci când nimic nu este ADEVĂRAT.
- Scrierea este scurtată decât cea a declarațiilor If-Else standard.
- Nu este bine cunoscut, prin urmare, este posibil ca un anumit utilizator să nu înțeleagă codul dvs. dacă ați folosit IIF în loc de If-Else convențional.
Articole recomandate
Acesta este un ghid pentru VBA IIF. Aici vom discuta despre cum să folosiți Excel VBA IIF împreună cu exemple practice și șablon excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -
- Lucrul cu VBA Cell Cell
- Ștergerea unei rânduri în VBA
- Cum se utilizează Excel VBA Transpose?
- Cum să remediați eroarea 1004 folosind VBA