Carcasă de comutare Excel VBA
În VBA Switch Case, atunci când trebuie să verificăm sau să analizăm logic o condiție și să executăm diferite linii de coduri bazate pe aceeași, folosim instrucțiunea condițională IF-Else. În mod similar, există o altă declarație Switch Case, care este mai cunoscută sub numele de instrucțiune Select Case, care poate verifica sau analiza mai multe condiții logice și executa liniile de cod pe baza acestora. Când aveți trei sau mai multe condiții logice de verificat, este recomandat să utilizați Select Case sau Switch Case în loc de o declarație IF-Else convențională. Deoarece face ca codul VBA să fie mai rapid și mai inteligibil în loc de declarații IF-Else cuibărite în astfel de cazuri.
Comutarea carcasei / carcasei selectate
Switch Case sau Select Case din VBA funcționează pe linii similare ca în declarațiile IF-Else. Verifică mai multe expresii logice / condiționale împotriva diferitelor valori (cazuri). Imediat ce oricare dintre cazuri se potrivește cu condiția (devine adevărat pentru condiția dată), sistemul execută acel caz și restul altor cazuri sunt ignorate pentru a fi executate. În cazul în care există două cazuri care sunt adevărate pentru condiția dată, doar primul va fi executat cu legea precedenței.
Sintaxa pentru carcasa comutatorului / carcasa selectată este următoarea:
Select Case
Case value_1
Code to Execute when Expression = value_1
Case value_2
Code to Execute when Expression = value_2
Case value_3
Code to Execute when Expression = value_3
.
.
.
Case value_n
Code to Execute when Expression = value_n
Case Else
Code to Execute when no case value meets the expression/logical test.
End Select
Unde,
Expresie: aceasta este o expresie pentru care am dorit să verificăm sau să analizăm folosind diferite valori de caz.
value_1, value_2, value_3, … sunt condițiile logice care trebuie verificate pentru expresia dată.
Cum să utilizați declarația de caz de comutare în Excel VBA?
Vom învăța cum să folosiți instrucțiunea Switch Case în Excel, folosind Codul VBA.
Puteți descărca acest șablon VBA Switch Case Excel aici - Modelul VBA Switch Case ExcelVBA Switch Case - Exemplul # 1
Vom verifica dacă numărul dat este mai mic de 100 sau mai mult de 100. Pentru aceasta, urmați pașii de mai jos:
Pasul 1: Introduceți un nou modul în Visual Basic Editor (VBE). Faceți clic pe fila Inserare > selectați Modul.
Pasul 2: Definiți o nouă subprocedură în modulul inserat care vă poate reține macro.
Cod:
Sub switch_case_example1 () End Sub
Pasul 3: Definiți o nouă variabilă numită usrInpt care poate reține valoarea utilizatorului. Utilizați funcția VBA InputBox pentru a crea o casetă de intrare care să ia valorile utilizatorului prin variabila usrInpt .
Cod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Vă rugăm să introduceți valoarea") End Sub
Pasul 4: Folosiți instrucțiunea Select Case și furnizați valoarea furnizată de utilizator prin variabila usrInpt . Aceasta este expresia pe care trebuie să o verificăm cu condiții logice.
Cod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Vă rugăm să introduceți valoarea") Selectați Case usrInpt End Sub
Pasul 5: Introduceți primul test logic care trebuie verificat în instrucțiunea Caz, după cum urmează.
Cod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Vă rugăm să introduceți valoarea") Selectați Case usrInpt Case is <100 End Sub
Pasul 6: Utilizați funcția MsgBox pentru a adăuga un mesaj de ieșire dacă Case Is <100 este adevărat.
Cod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Vă rugăm să introduceți valoarea") Selectați Case usrInpt Case Is <100 MsgBox "Numărul furnizat este sub 100" End Sub
Pasul 7: Acum, trebuie să furnizăm o declarație executabilă atunci când valoarea pentru usrInpt este mai mare de 100. Adăugați un caz și MsgBox pentru a realiza acest lucru.
Cod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Vă rugăm să introduceți valoarea") Selectați Case usrInpt Case Is 100 MsgBox "Numărul furnizat este mai mare de 100" End Sub
Pasul 8: Ce se întâmplă dacă valoarea furnizată de utilizator este exact 100? Nu avem niciun caz adăugat pentru asta. Să-l adăugăm pe cel care îi transmite utilizatorului un mesaj că valoarea pe care a introdus-o este 100.
Cod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Vă rugăm să introduceți valoarea") Selectați Case usrInpt Case Is 100 MsgBox "Numărul furnizat este mai mare de 100" Case Is = 100 MsgBox "Numărul furnizat este 100" Sub
Pasul 9: Trebuie să încheiem declarația Selectați cazul. Folosiți End Select pentru a încheia bucla creată.
Cod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Vă rugăm să introduceți valoarea") Selectați Case usrInpt Case Is 100 MsgBox "Numărul furnizat este mai mare de 100" Case Is = 100 MsgBox "Numărul furnizat este 100" End Select End Sub
Pasul 10: Acum, executați acest cod apăsând pe butonul Run sau F5. Va apărea o nouă casetă pop care solicită verificarea valorii. Voi introduce o valoare ca 110 și voi apăsa butonul OK din caseta de introducere. Întrucât numărul pe care îl introduc este mai mare de 100, de îndată ce fac clic pe OK, pe ecranul meu va apărea un mesaj nou care spune: „Numărul furnizat este mai mare de 100”.
VBA Switch Case - Exemplul # 2
Să presupunem că vrem să surprindem nota studenților pe baza notelor lor. Vedeți pașii de mai jos despre cum putem realiza acest lucru.
Pasul 1: Definiți o nouă sub-procedură numită switch_case_example2 .
Cod:
Sub switch_case_example2 () End Sub
Pasul 2: Definiți două variabile noi - marchează ca număr întreg și notează ca șir folosind instrucțiunea Dim în subprocedura creată.
Cod:
Sub switch_case_example2 () Dim marchează gradele întregi Dim As String End Sub
Pasul 3: Utilizați funcția VBA InputBox prin care utilizatorul poate introduce valoarea pentru marcajele variabile.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Gradele de notă ca String marks = InputBox ("Introduceți marcajele") End Sub
Pasul 4: Utilizați instrucțiunea Select Case și furnizați marcajele variabile ca expresie care trebuie verificată.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Note Dim Ca semn String = InputBox ("Vă rugăm să introduceți mărcile") Selectați Marci de caz Final Sub
Deoarece dorim să alocăm notele elevilor pe baza notelor pe care le-au introdus, trebuie să definim primele note.
Pasul 5: Folosiți instrucțiunea de caz pentru a verifica dacă marcajele sunt mai mici de 35. Dacă da, atribuiți valoarea ca „F” la note variabile.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Notă Dim Ca șiruri = InputBox ("Vă rugăm să introduceți mărcile") Selectați Marci de caz Case Is <35 grade = "F" End Sub
Pasul 6: Dacă marcajele sunt cuprinse între 35 și 45, alocați valoarea ca „D” la note variabile.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Notă Dim Ca șiruri = InputBox ("Vă rugăm să introduceți mărcile") Selectați Marci de caz Case Is <35 grade = "F" Caz 35 până la 45 grade = "D" End Sub
Pasul 7: Dacă mărcile introduse sunt cuprinse între 46 și 55, valoarea „C” ar trebui să fie atribuită notelor variabile.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Notă Dim Ca șiruri = InputBox ("Vă rugăm să introduceți notele") Selectați Marci de caz Case Is <35 grade = "F" Cazul 35 La 45 grade = "D" Cazul 46 La 55 grade = "C" End Sub
Pasul 8: Când marcajele se situează în intervalul 56 - 65, valoarea atribuită gradelor variabile ar trebui să fie „B”.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Notă Dim Ca șiruri = InputBox ("Vă rugăm să introduceți notele") Selectați Marci de caz Case Is <35 grade = "F" Cazul 35 La 45 grade = "D" Cazul 46 La 55 grade = Cazul „C” 56 la 65 de grade = „B” End Sub
Pasul 9: Pentru notele cuprinse între 66 și 75, nota trebuie să fie „A”.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Notă Dim Ca șiruri = InputBox ("Vă rugăm să introduceți notele") Selectați Marci de caz Case Is <35 grade = "F" Cazul 35 La 45 grade = "D" Cazul 46 La 55 grade = „C” Cazul 56 La 65 de grade = „B” Cazul 66 La 75 de grade = „A” Sub final
Pasul 10: Dacă mărcile introduse sunt mai mari de 75, variabilelor de grade ar trebui să li se atribuie o valoare ca „A +”
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Notă Dim Ca șiruri de caractere = InputBox ("Vă rugăm să introduceți mărcile") Selectați Marci de caz Case Is 75 notes = "A +" End Sub
Pasul 11: Folosiți End Selectați închiderea buclei Selectați cazul.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Notă Dim Ca șiruri = InputBox ("Vă rugăm să introduceți mărcile") Selectați Marci de caz Case Is 75 notes = "A +" End Select Select End Sub
Pasul 12: Acum, trebuie să verificăm care este nota asociată notelor pe care le-a introdus un student. Pentru a realiza acest lucru, utilizați funcția MsgBox astfel încât să noteze notele obținute în interiorul unei căsuțe de mesaje.
Cod:
Sub switch_case_example2 () Marcaje Dim Ca dimensiuni întregi Note Dim Ca șiruri = InputBox ("Vă rugăm să introduceți notele") Selectați Marci de caz Case Is 75 notes = "A +" End Select MsgBox "Gradul obținut este:" & Note End Sub
Pasul 13: Rulați acest cod apăsând butonul F5 sau Run și puteți vedea o casetă de intrare VBA care solicită o valoare a marcajului. Voi introduce marcajele ca 72 și voi apăsa butonul OK prezent pe caseta de introducere. Imediat ce apăs pe butonul OK din caseta de intrare, voi primi o casetă de mesaje care indică notele asociate notelor introduse.
Așa putem folosi instrucțiunea Switch / Select Case din VBA.
Lucruri de amintit
- Valoarea de schimbare este de fapt un sinonim pentru instrucțiunea Select Case din VBA. Acesta a fost numit astfel, deoarece cu ajutorul acestei afirmații putem schimba între ieșirile diferite în același timp.
- Această afirmație poate fi folosită ca o alternativă la bucla IF-Else ori de câte ori avem trei sau mai multe condiții de verificat.
- Este OK dacă nu utilizați cazul ELSE în instrucțiunea Select Case. Cu toate acestea, în acest caz, trebuie să vă asigurați că cel puțin o condiție este adevărată pe întreaga buclă.
Articole recomandate
Acesta este un ghid pentru VBA Switch Case. Aici vom discuta despre cum să folosiți declarația cazului de comutare în Excel VBA împreună cu exemple practice și șablon excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -
- Colecția VBA (exemple)
- Declarații VBA IF | Șabloane Excel
- Cum se utilizează funcția de sortare Excel VBA?
- În timp ce bucla VBA (exemple cu șablonul Excel)
- VBA Environ