Declarație de comutare VBA Excel
Comutatorul în VBA este similar cu funcția de selectare a cazului. Singura diferență între acestea este că trebuie să scriem coduri mult mai mici într-un switch în comparație pentru a selecta cazul. Putem scrie o declarație de comutare în cadrul unei subproceduri sau o putem scrie ca o funcție definită de utilizator în VBA.
Switch in VBA evaluează o expresie și dă ieșirea pe baza condițiilor pentru expresia respectivă. În situațiile selectate, am definit cazuri care, dacă avem un caz, rezultatul ar trebui să fie b și așa mai departe. Acest lucru a fost necesar pentru a scrie o mulțime de coduri pentru instrucțiune de caz select, dar în Comutare, putem îmbina toate condițiile și expresiile într-o singură instrucțiune, mai degrabă decât să avem mai multe instrucțiuni de caz.
Sintaxa declarației de comutare
Comutatorul calculează prima expresie și dacă valoarea este adevărată returnează valoarea pentru expresie și dacă valoarea pentru expresia 1 nu este adevărată, se continuă pentru același calcul pentru expresia 2 și dacă rezultatul este adevărat, atunci valoarea 2 este afișată, dar dacă expresia este returnată este falsă, comutatorul trece la o altă expresie.
Deci, ce se întâmplă dacă niciuna dintre expresii nu este adevărată și toate acestea sunt returnate ca Fals, vom primi eroare de timp de execuție într-un astfel de caz, dacă nu avem o eroare prealabilă de gestionare pentru un astfel de scenariu.
Cum să utilizați declarația de comutare în Excel VBA?
Mai jos sunt diferite exemple de utilizare a VBA Switch statement în Excel.
Puteți descărca acest șablon Excel VBA Switch aici - șablonul VBA Switch ExcelComutator VBA - Exemplul # 1
Haideți să începem cu exemplul de bază pentru a ne face o idee despre declarația de comutare VBA. Vom lua intrare de la utilizator și pe baza acestei intrări vom defini ieșirea. Vom lua intrare de la numărul 1 la 5 și pe baza intrării vom avea rezultate predefinite, dar dacă utilizatorul introduce orice alt număr decât intervalul nostru, va trebui să gestionăm acea eroare.
Urmați pașii de mai jos pentru a utiliza declarația de comutare în Excel VBA:
Pasul 1: Din fila vizuală de bază, introduceți editorul VB din fila dezvoltatorului.
Pasul 2: În fereastra Editor VB, introduceți un modul nou din fila Inserare.
Pasul 3: Declarați o nouă subprocedură în noul modul care tocmai a fost creat.
Cod:
Sub eșantion () End Sub
Pasul 4: Declarați două variabile A și B, una ca număr întreg și alta ca șir.
Cod:
Sub eșantion () Dim A Ca număr întreg Dim B Ca șir de capăt
Pasul 5: În variabila A, stocați valoarea este dată de utilizator folosind funcția casetă de intrare.
Cod:
Sub eșantion () Dim A ca număr întreg Dim B Ca șir A = InputBox ("Introduceți o valoare", "valoarea ar trebui să fie între 1 până la 5")
Pasul 6: Acum în Variabila B vom folosi o declarație de comutare VBA pentru a evalua rezultatul pe intrare furnizat de utilizator.
Cod:
Sub eșantion () Dim A Ca număr întreg Dim B Ca șir A = InputBox ("Introduceți o valoare", "valoarea ar trebui să fie între 1 până la 5") B = Comutator (A = 1, "Unu", A = 2, "Doi ", A = 3, " Trei ", A = 4, " Patru ", A = 5, " Cinci ")
Pasul 5: Afișați valoarea stocată în B utilizând funcția MSGBOX.
Cod:
Sub eșantion () Dim A Ca număr întreg Dim B Ca șir A = InputBox ("Introduceți o valoare", "valoarea ar trebui să fie între 1 până la 5") B = Comutator (A = 1, "Unu", A = 2, "Doi ", A = 3, " Trei ", A = 4, " Patru ", A = 5, " Cinci ") MsgBox B Sub Sub
Pasul 6: Rulați codul de mai sus apăsând tasta F5 și ne cere să introducem un număr întreg. Furnizați un număr 3 și apăsați ok pentru a vedea rezultatul.
Pasul 7: Să redutăm codul și să introducem numărul 6 și să vedem rezultatul pe care îl obținem.
Obținem eroarea de timp de execuție, deoarece în instrucțiunea noastră de comutare nu există o expresie de definit 6. Deci, în astfel de scenarii, trebuie să avem unele erori de gestionare preventivă.
Pasul 8: Pentru a depăși această eroare de timp de execuție, declarați o altă variabilă Var ca variantă.
Cod:
Sub eșantion () Dim A Ca număr întreg B B Ca șir Dim var Ca variantă A = InputBox ("Introduceți o valoare", "valoarea ar trebui să fie între 1 până la 5") B = Comutator (A = 1, "One", A = 2, "Doi", A = 3, "Trei", A = 4, "Patru", A = 5, "Cinci") MsgBox B End Sub
Pasul 9: Înainte de instrucțiunea de comutare, folosiți instrucțiunea on error goto, astfel încât dacă codul găsește o eroare, știe unde să meargă.
Cod:
Sub eșantion () Dim A Ca număr întreg B B Ca șir Dim var Ca variantă A = InputBox ("Introduceți o valoare", "valoarea ar trebui să fie între 1 până la 5") Pe eroare GoTo var B = Comutator (A = 1, "Unu ", A = 2, " Doi ", A = 3, " Trei ", A = 4, " Patru ", A = 5, " Cinci ") MsgBox B End Sub
Pasul 10: Acum definiți ce se va întâmpla dacă codul întâmpină o eroare,
Cod:
Sub eșantion () Dim A Ca număr întreg B B Ca șir Dim var Ca variantă A = InputBox ("Introduceți o valoare", "valoarea ar trebui să fie între 1 până la 5") Pe eroare GoTo var B = Comutator (A = 1, "Unu ", A = 2, " Doi ", A = 3, " Trei ", A = 4, " Patru ", A = 5, " Cinci ") MsgBox B var: MsgBox" Ați introdus un număr nevalid "Reiați următorul final Sub
Pasul 11: Haideți să rulăm din nou codul apăsând F5 sau făcând clic pe butonul Redare și valoarea de intrare 6 și apoi Apăsați ok pentru a vedea rezultatul final în cazul în care declarația comutatorului întâmpină o eroare.
Comutator VBA - Exemplul # 2
Pentru acest exemplu, am date în foaia 1 care conține numele unor filme și durata lor în câteva minute. Pe baza lungimii lor pe care vreau să o definesc este filmul scurt sau lung. Aruncați o privire la datele de mai jos.
Urmați pașii de mai jos pentru a utiliza declarația de comutare în Excel VBA:
Pasul 1: Să începem în același modul și să începem prin a defini o altă subprocedură după cum urmează.
Sub Eșantion1 () Final Sub
Pasul 2: Declamați două variabile A și B, una ca o întreagă ca alta, precum String, după cum urmează,
Sub eșantion1 () Dim A Ca număr întreg B B Ca sub capăt de șir
Pasul 3: Acum, în variabila A, să stocăm valoarea lungimii filmului pentru oricare dintre filme.
Sub Eșantion1 () Dim A Ca număr întreg Dim B Ca șir A = Interval ("A3"). Offset (0, 1). Valoare End Sub
Pasul 4: Acum, în varianta B, să folosim o declarație de comutare VBA pentru a defini care ar fi scenariul pentru fiecare lungime de film.
Sub eșantion1 () Dim A Ca număr întreg Dim B Ca șir A = Interval ("A3"). Offset (0, 1). Valor B = Comutator (A <= 70, "Prea scurt", A <= 100, "Scurt" ", A <= 120, " Lung ", A <= 150, " Prea lung ", " Final Sub
Pasul 5: Acum, dacă valoarea este mai mare de 180 ar trebui să avem un alt instrument de gestionare a erorilor aici sau putem pur și simplu scrie o altă expresie ca True, Value. Deoarece toate celelalte valori vor fi returnate, deoarece codul fals va executa această expresie.
Sub eșantion1 () Dim A Ca număr întreg Dim B Ca șir A = Interval ("A3"). Offset (0, 1). Valor B = Comutator (A <= 70, "Prea scurt", A <= 100, "Scurt" ", A <= 120, " Lung ", A <= 150, " Prea lung ", Adevărat, " Plictisitor ") Final Sub
Pasul 6: Afișați valoarea lui B folosind funcția msgbox.
Sub eșantion1 () Dim A Ca număr întreg Dim B Ca șir A = Interval ("A3"). Offset (0, 1). Valor B = Comutator (A <= 70, "Prea scurt", A <= 100, "Scurt" ", A <= 120, " Lung ", A <= 150, " Prea lung ", Adevărat, " Plictisitor ") MsgBox B End Sub
Pasul 7: Rulați codul apăsând tasta F5 sau făcând clic pe butonul Redare și vedeți ieșirea.
Celula A3 are un film 2 a cărui lungime a fost de 100, deci ieșirea la fel de scurtă.
Comutator VBA - Exemplul # 3
Permiteți utilizarea instrucțiunii switch pentru a face o funcție definită de utilizator pentru exemplul de mai sus, astfel încât să o putem folosi în foaia de lucru ori de câte ori este necesar.
Urmați pașii de mai jos pentru a utiliza declarația de comutare în Excel VBA:
Pasul 1: În același modul declarați o funcție numită lungime de film.
Funcție Lungime Film (Leng As Integer) Ca funcție End End
Pasul 2: Utilizați acum o instrucțiune VBA Switch pentru a defini parametrii pe baza lungimii după cum urmează,
Funcție FilmLungime (Leng As Integer) As String FilmLength = Switch (Leng <= 70, "Too Short", Leng <= 100, "Short", Leng <= 120, "Long", Leng <= 150, "Too Long", Adevărat, „Boring”) Funcție finală
Pasul 3: Haideți să mergem în foaia de lucru unde am avut datele noastre, tip = FilmLength (
Pasul 4: Putem vedea funcția noastră de a da un argument ca valori în celula B2.
Pasul 5: După aplicarea formulei, apăsați enter.
Pasul 6: trageți acum funcția în celula C10 și vedeți rezultatul.
Lucruri de amintit
- Funcția de comutare evaluează expresia din ea. Dacă prima expresie este evaluată adevărat, atunci nu evaluează celelalte expresii.
- Dacă niciuna dintre expresii nu este adevărată, aceasta returnează o eroare de timp de execuție.
- Trebuie să avem un instrument de gestionare a erorilor în declarația sau expresia switch, astfel încât dacă fiecare expresie este returnată falsă, nu întâlnim o eroare de timp de rulare.
- Un comutator este similar cu instrucțiunea de caz selectată.
Articole recomandate
Acesta este un ghid pentru VBA Switch. Aici discutați cum să utilizați instrucțiunea switch în Excel VBA împreună cu câteva exemple practice și șablonul excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -
- Utilizarea funcției VBA InStr
- Funcția SWITCH Excel
- VBA Număr aleatoriu
- CONCATENARE Funcție în Excel