Ohišje stikala Excel VBA
V primeru VBA Switch, ko moramo logično preveriti ali analizirati stanje in izvesti različne vrstice kod, ki temeljijo na istem, uporabljamo pogojni stavek IF-Else. Podobno obstaja še en stavek Switch Case, ki je bolj znan kot Izjava izvoda, ki lahko preveri ali analizira več logičnih pogojev in na njih izvede izvedbe kodnih vrstic. Če imate za preverjanje tri ali več logičnih pogojev, priporočamo, da uporabite Select Case ali Switch Case namesto običajnega stavka IF-Else. Ker je koda VBA hitrejša in bolj razumljiva namesto ugnezdenih stavkov IF-Else v takih primerih.
Switch Case / Select Case
Switch Case ali Select Case v VBA deluje v podobnih vrsticah kot v stavkih IF-Else. Preveri več logičnih / pogojnih izrazov glede na različne vrednosti (primere). Takoj, ko se kateri koli primer ujema s pogojem (postane resničen za dani pogoj), sistem to zadevo izvrši, ostali primeri pa se ne upoštevajo. V primeru, da za dani pogoj veljata dva primera, bo z zakonom prednosti.
Sintaksa za stikalo Switch / Select Case je spodaj:
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
Kje,
Izraz: To je izraz, za katerega smo želeli preveriti ali analizirati z različnimi vrednostmi primerov.
vrednost_1, vrednost_2, vrednost_3, … so logični pogoji, ki jih je treba preveriti za dani izraz.
Kako uporabiti izjavo o primeru stikala v Excelu VBA?
Spoznali bomo, kako uporabiti stavek Switch Case v Excelu s pomočjo kode VBA.
Predlogo VBA Switch Switch Excel lahko prenesete tukaj - Predloga VBA Switch Case ExcelOhišje stikala VBA - primer # 1
Preverili bomo, ali je dano število manjše od 100 ali več kot 100. Za to sledite spodnjim korakom:
1. korak: Vstavite nov modul v Visual Basic Editor (VBE). Kliknite zavihek Vstavljanje > izberite Modul.
2. korak: V vstavljenem modulu določite nov podproces, ki lahko vsebuje vaš makro.
Koda:
Sub switch_case_example1 () Konec Sub
3. korak: Določite novo spremenljivko z imenom usrInpt, ki lahko vsebuje uporabniško vrednost. S pomočjo funkcije VBA InputBox ustvarite polje za vnos, ki uporabniške vrednosti sprejema s spremenljivko usrInpt .
Koda:
Pod switch_case_example1 () Dim usrInpt Kot Integer usrInpt = InputBox ("Vnesite vrednost") End Sub
4. korak: Uporabite stavek Select Case in z spremenljivko usrInpt vnesite vrednost, ki jo je uporabnik zagotovil . To je izraz, ki ga moramo preveriti z logičnimi pogoji.
Koda:
Pod switch_case_example1 () Dim usrInpt Kot Integer usrInpt = InputBox ("Prosimo, vnesite svojo vrednost") Izberite Case usrInpt End Sub
5. korak: Vnesite prvi logični test, ki ga želite preveriti pod stavkom Case, kot sledi.
Koda:
Pod switch_case_example1 () Dim usrInpt Kot celoten usrInpt = InputBox ("Vnesite vrednost") Izberite Primer usrInpt Primer je <100 Končni pod
6. korak: Uporabite funkcijo MsgBox, da dodate izhodno sporočilo, če je vrednost True <100 resnična.
Koda:
Pod Switch_case_example1 () Dim usrInpt Kot Integer usrInpt = InputBox ("Prosimo, vnesite svojo vrednost") Izberite Case usrInpt Primer je <100 MsgBox "Navedena številka je manjša od 100" End Sub
7. korak: Zdaj moramo zagotoviti izvedljiv stavek, ko je vrednost za usrInpt večja od 100. Dodajte Case in MsgBox, da to dosežete.
Koda:
Pod Switch_case_example1 () Dim usrInpt Kot Integer usrInpt = InputBox ("Prosimo, vnesite svojo vrednost") Izberite Case usrInpt Primer 100 MsgBox "Navedeno število je večje od 100" End Sub
Korak 8: Kaj, če je vrednost, ki jo zagotovi uporabnik, natančno 100? Za to nimamo nobenega primera. Dodajmo tisto, ki uporabniku sporoči, da je vrednost, ki jo je vnesel, 100.
Koda:
Pod Switch_case_example1 () Dim usrInpt Kot Integer usrInpt = InputBox ("Prosimo, vnesite svojo vrednost") Izberite Primer usrInpt Primer 100 MsgBox "Navedeno število je večje od 100" Št. Primerov = 100 MsgBox "Navedena številka je 100" Končna pod
9. korak: Končati moramo izjavo Select Case. Za konec ustvarjene zanke uporabite End End .
Koda:
Pod Switch_case_example1 () Dim usrInpt Kot Integer usrInpt = InputBox ("Prosimo, vnesite svojo vrednost") Izberite Primer usrInpt Primer 100 MsgBox "Navedena številka je večja od 100" Št. Primerov = 100 MsgBox "Navedena številka je 100" Konec Pod
Korak 10: Zdaj zaženite to kodo s pritiskom na gumb Run ali F5. Pojavi se novo pojavno okno z zahtevo, da se preveri vrednost. Vnesel bom vrednost 110 in pritisnil na gumb V redu na vhodnem polju. Ker je številka, ki jo vnesem, večja od 100, takoj ko kliknem V redu, se na mojem zaslonu prikaže novo sporočilo z napisom: "Navedena številka je večja od 100".
Primer VBA Switch - Primer # 2
Recimo, da želimo ujeti oceno študentov na podlagi njihovih ocen. Oglejte si spodnje korake, kako lahko to dosežemo.
1. korak: Določite nov podproces z imenom switch_case_example2 .
Koda:
Sub switch_case_example2 () Konec Sub
2. korak: Določite dve novi spremenljivki - oznake kot celo število in ocene kot niz z uporabo stavka Dim v ustvarjenem podproceduri.
Koda:
Sub switch_case_example2 () Dim označi kot celoten Dim ocenjuje kot niz konca
3. korak: Uporabite funkcijo VBA InputBox, s pomočjo katere lahko uporabnik vnese vrednost za spremenljivke.
Koda:
Sub switch_case_example2 () Dim označuje kot celoten Dim ocenjuje kot String mark = InputBox ("Prosimo, vnesite oznake") End Sub
4. korak: Uporabite stavek Select Case in navedite spremenljivke kot izraz, ki ga želite preveriti.
Koda:
Pod Switch_case_example2 () Dim označi kot celoten Dim oceni kot Oznake nizov = InputBox ("Prosimo, vnesite oznake") Izberite Oznake črke End Sub
Ker želimo dijakom dodeliti ocene na podlagi ocen, ki jih vnesejo, moramo najprej določiti ocene.
Korak 5: Z izjavo primera preverite, ali so ocene manjše od 35. Če je tako, dodelite vrednost kot "F" spremenljivim razredom.
Koda:
Sub switch_case_example2 () Dim oznake kot celi Število razredov kot oznake nizov = InputBox ("Prosimo, vnesite oznake") Izberite Oznake črke Vrednost <35 razredov = "F" Konec pod
Korak 6: Če so ocene med 35 in 45, dodelite vrednost kot "D" spremenljivim razredom.
Koda:
Pod Switch_case_example2 () Dim oznake kot celi Število razredov kot Oznake nizov = InputBox ("Prosimo, vnesite oznake") Izberite Oznake črke Vrednost je <35 razredov = "F" Zadeva 35 do 45 razredov = "D" Konec pod
Korak 7: Če vnesene oznake znašajo med 46 in 55, se vrednost „C“ dodeli spremenljivim razredom.
Koda:
Pod Switch_case_example2 () Dim oznake kot celi Številke razredov Kot vrvice oznake = InputBox ("Prosimo, vnesite oznake") Izberite Oznake črke Primer je <35 razredov = "F" Primer 35 do 45 razredov = "D" Primer 46 do 55 razredov = "C" Končni pod
Korak 8: Če so oznake v območju od 56 do 65, mora biti vrednost, dodeljena spremenljivim razredom, "B".
Koda:
Pod Switch_case_example2 () Dim oznake kot celi Številke razredov Kot vrvice oznake = InputBox ("Prosimo, vnesite oznake") Izberite Oznake črke Primer je <35 razredov = "F" Primer 35 do 45 razredov = "D" Primer 46 do 55 razredov = Zadeva "C" 56 do 65 razredov = "B" Konec pod
9. korak: Za ocene med 66 in 75 bi morala biti ocena "A".
Koda:
Pod Switch_case_example2 () Dim oznake kot celi Številke razredov Kot vrvice oznake = InputBox ("Prosimo, vnesite oznake") Izberite Oznake črke Primer je <35 razredov = "F" Primer 35 do 45 razredov = "D" Primer 46 do 55 razredov = Zadeva "C" 56 do 65 razredov = "B" Primer 66 do 75 razredov = "A" Konec pod
Korak 10: Če je vnesenih oznak več kot 75, je treba spremenljivki ocen dodeliti vrednost kot "A +"
Koda:
Pod Switch_case_example2 () Dim oznake kot celi Številke razredov kot String oznake = InputBox ("Prosimo, vnesite oznake").
Korak 11: Uporabi konec Izberite zapremo zanko Select Case.
Koda:
Pod Switch_case_example2 () Dim oznake kot celi Številke razredov Kot oznake nizov = InputBox ("Prosimo, vnesite oznake") Izberite Oznake primera Št. Primerov 75 razredov = "A +" Konec Izberite konec Pod
12. korak: Zdaj moramo preveriti, kakšna je ocena, povezana z ocenami, ki jih je študent vpisal. Da bi to dosegli, uporabite funkcijo MsgBox tako, da v polju s sporočili označuje dosežene ocene.
Koda:
Sub switch_case_example2 () Dim oznake kot celi Število razredov kot oznake nizov = InputBox ("Prosimo, vnesite oznake") Izberite Oznake primera Št. Primerov je 75 ocen = "A +" Končni izbor MsgBox "Dosežena ocena je:" & ocene End Sub
Korak 13: Zaženite to kodo s pritiskom na tipko F5 ali Run in lahko vidite VBA polje za vnos, ki zahteva vrednost oznake. Oznake vpišem kot 72 in pritisnem na gumb V redu, ki je prisoten na vhodnem polju. Takoj ko pritisnem na gumb V redu v polju za vnos, dobim polje s sporočilom, v katerem so označene ocene, povezane z vnesenimi znamkami.
Tako lahko uporabimo izjavo Switch / Select Case znotraj VBA.
Stvari, ki jih je treba zapomniti
- Switch case je sinonim za izjavo Select Case v VBA. Tako se imenuje, ker lahko s pomočjo te izjave hkrati preklapljamo med različnimi izhodi.
- Ta izjava se lahko uporabi kot alternativa zanki IF-Else, kadar moramo preveriti tri ali več pogojev.
- V redu je, če v izpisu Select Case ne uporabite ELSE Case. Vendar morate v tem primeru poskrbeti, da je vsaj en pogoj resničen v celotni zanki.
Priporočeni članki
To je vodnik za VBA Switch Case. Tukaj smo razpravljali o tem, kako uporabljati izjavo o primeru preklopa v Excelu VBA skupaj s praktičnimi primeri in naloženo predlogo Excela. Ogledate si lahko tudi druge naše predlagane članke -
- Zbirka VBA (primeri)
- VBA IF Izjave | Predloge Excel
- Kako uporabljati funkcijo razvrščanja Excel VBA?
- VBA, medtem ko je zanka (primeri s predlogo Excel)
- VBA Environment