Izjava primera Excel VBA Select Case - pojasnjeno s primeri

Excel VBA ima konstrukcijo IF then Else, ki jo lahko uporabite za analizo več pogojev in izvajanje kod na podlagi teh pogojev.

Druga podobna konstrukcija, ki omogoča preverjanje več pogojev, je IZBERI ZADEV izjavo.

Izbira primera je uporabna, če želite preveriti tri ali več pogojev. To lahko uporabite tudi z dvema pogojema (vendar menim, da je v tem primeru lažje uporabiti drugače).

Preprost primer, kjer je izjava Select Case uporabna, če želite oceniti študenta glede na ocene, ki jih je dosegel (obravnavano kot primer kasneje v tej vadnici).

Opomba: Vse vzorčne kode, zajete v tej vadnici, so namenjene v modulu v VBA.

Izberite Sintaksa velikih črk

Spodaj je sintaksa Select Case v Excelu VBA:

Izbira primera Test_Expression Primer vrednosti_1 Blok kode, ko je Test_Expression = Vrednost_1 Vrednost primera_2 Blok kode, ko je Test_Expression = Vrednost_2 Vrednost primera_3 Koda bloka, ko Test_Expression = Vrednost_3 Blok velike kode, ko ni izpolnjen noben od pogojev primera End Select
  • Test_Expression: To je izraz, katerega vrednost analiziramo z uporabo različnih primerov (bolje razloženo s spodnjimi primeri).
  • Pogoj_1, Pogoj_2,…: To so pogoji, pod katerimi se preskusi besedilni izraz. Če izpolnjuje pogoj, se izvede kodni blok za dani pogoj.

Za vsak stavek Select Case, ki ga uporabljate, morate uporabiti stavek End Select.

Opomba: Takoj ko je pogoj izpolnjen, VBA zapusti konstrukcijo izbranega primera. Če imate torej pet pogojev in je drugi pogoj izpolnjen, bo VBA zapustil možnost Izbira primera - preostali pogoji pa ne bodo preizkušeni.

Izberite primere primerov

Zdaj, da bolje razumemo, kako uporabiti stavek Select Case v VBA, pojdimo skozi nekaj primerov.

Upoštevajte, da je večina primerov v tej vadnici namenjena razlagi koncepta. To je lahko ali pa tudi ne najboljši način za opravljanje dela.

Začnimo s preprostim primerom, kako preveriti, kako Select Case omogoča preverjanje pogojev.

Primer 1 - Preverite številke

V spodnjem primeru koda od uporabnika zahteva, da vnese poljubno število med 1 in 5, nato pa prikaže polje s sporočilom s številko, ki jo je vnesel uporabnik.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Prosimo, vnesite številko med 1 in 5") Izberite Case UserInput Primer 1 MsgBox "Vnesli ste 1" Primer 2 MsgBox "Vnesli ste 2" Primer 3 MsgBox "Vnesli ste 3" Primer 4 MsgBox "Vnesli ste 4" Primer 5 MsgBox "Vnesli ste 5" End Izberite End Sub

Upoštevajte, da ta koda še zdaleč ni uporabna in niti ni varna. Na primer, če vnesete 6 ali kateri koli niz, to ne bo nič naredilo. Kot sem že omenil, je moj namen prikazati, kako deluje Select Case.

Primer 2 - Uporaba Select Case z IS pogojem

Za preverjanje vrednosti števil lahko uporabite pogoj IS s konstrukcijo Select Case.

Spodnja koda preveri, ali je vnosna številka večja od 100 ali ne.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Prosimo, vnesite številko") Select Case UserInput Case Is = 100 MsgBox "Vnesli ste številko večjo (ali enako) 100" End Izberite End Sub

Primer 3 - Uporaba drugega primera za ulov vseh

V zgornjem primeru sem uporabil dva pogoja (manjši od 100 ali večji ali enak 100).

Namesto drugega primera s pogojem lahko uporabite tudi Case Else.

Case Else deluje kot vseobsegajoča in vse, kar ne spada v prejšnje primere, obravnava Case Else.

Spodaj je primer kode, kjer sem uporabil Case Else:

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Prosimo, vnesite številko") Select Case UserInput Case Is <100 MsgBox "Vnesli ste številko, manjšo od 100" Case Else MsgBox "Vnesli ste številko večjo (ali enako) ) 100 "End Izberite End Sub

Primer 4 - Uporaba obsega števil

V izbranem primeru lahko preverite tudi obseg številk.

Spodnja koda zahteva vnos in prikaže polje s sporočilom glede na vrednost.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Prosimo, vnesite številko med 1 in 100") Select Case UserInput Case 1 to 25 MsgBox "Vnesli ste številko, manjšo od 25" Case 26 To 50 MsgBox "Vnesli ste številko med 26 in 50 "Case 51 To 75 MsgBox" Vnesli ste številko med 51 in 75 "Case 75 To 100 MsgBox" Vnesli ste številko več kot 75 "End Izberite End Sub

Primer 5 - Dobite oceno na podlagi doseženih ocen

Doslej smo videli osnovne primere (ki v praksi praktično niso uporabni).

Tukaj je primer, ki je bližje primeru iz resničnega sveta, kjer lahko uporabite možnost Izbira primera v Excelu VBA.

Naslednja koda vam bo dala oceno, ki jo študent dobi na podlagi ocen na izpitu.

Podrazred () Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") Izberite primer StudentMarks Primer je <33 FinalGrade = "F" Primer 33 do 50 FinalGrade = "E" Primer 51 do 60 FinalGrade = "D "Primer 60 do 70 FinalGrade =" C "Primer 70 do 90 FinalGrade =" B "Primer 90 To 100 FinalGrade =" A "End Izberite MsgBox" Ocena je "& FinalGrade End Sub

Zgornja koda od uporabnika zahteva ocene in na podlagi tega prikaže polje s sporočilom z zadnjo oceno.

V zgornji kodi sem navedel vse pogoje - za oznake 0 - 100.

Drug način uporabe Select Case je uporaba Case Else na koncu. To je uporabno, če upoštevate vse pogoje in nato določite, kaj storiti, če noben od pogojev ni izpolnjen.

Spodnja koda je različica oznake razreda z manjšo spremembo. Na koncu ima stavek Case else, ki se bo izvajal, če noben od zgornjih pogojev ni resničen.

Sub CheckOddEven () Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") Izberite primer StudentMarks Primer je <33 FinalGrade = "F" Primer 33 do 50 FinalGrade = "E" Primer 51 do 60 FinalGrade = "D "Primer 60 do 70 FinalGrade =" C "Primer 70 do 90 FinalGrade =" B "Primer Drugi FinalGrade =" A "End Izberite MsgBox" Ocena je "& FinalGrade End Sub

Primer 6 - Ustvarjanje funkcije po meri (UDF) z uporabo Select Case

V zgornjem primeru je koda od uporabnika zahtevala vnos oznak.

Ustvarite lahko tudi funkcijo po meri (User Defined Function), ki jo lahko uporabite tako kot vsako običajno funkcijo na delovnem listu in bo vrnila oceno učencem.

Spodaj je koda, ki bo ustvarila formulo po meri:

Funkcija GetGrade (StudentMarks As Integer) Dim FinalGrade As String Select Case StudentMarks Case Is <33 FinalGrade = "F" Case 33 to 50 FinalGrade = "E" Primer 51 do 60 FinalGrade = "D" Primer 60 do 70 FinalGrade = "C" Primer 70 do 90 FinalGrade = "B" Primer Else FinalGrade = "A" End Select GetGrade = FinalGrade End Funkcija

Ko imate to kodo v modulu, lahko uporabite funkcijo GetGrade na delovnem listu, kot je prikazano spodaj.

Primer 7 - Preverite ODD / EVEN z Select Case

Spodaj je primer kode, kjer preverim, ali je število v celici A1 liho ali sodo.

Sub CheckOddEven () CheckValue = Range ("A1"). Value Select Case (CheckValue Mod 2) = 0 Case True MsgBox "Število je sodo" Case False MsgBox "Število je liho" End Select End Sub

Primer 8 - Preverjanje med tednom/vikendom (več pogojev)

Uporabite lahko tudi možnost Select Case za preverjanje več vrednosti v istem primeru.

Spodnja koda na primer uporablja trenutni datum, da pokaže, ali je danes delavnik ali vikend (kjer sta vikenda sobota in nedelja)

Sub CheckWeekday () Select Case Weekday (Now) Case 1, 7 MsgBox "Danes je vikend" Case Others MsgBox "Today is a Weekday" End Izberite End Sub

V zgornji kodi preverimo dva pogoja (1 in 7) v istem primeru.

Opomba: Funkcija med tednom vrne 1 za nedeljo in 7 za soboto.

Primer 9 - Vloženi izbirni stavki

Eno izjavo Select Case lahko ugnezdite tudi v drugo.

Spodaj je koda, ki preveri, ali je dan med tednom ali vikendom, in če je vikend, bo prikazano, ali je sobota ali nedelja.

Sub CheckWeekday () Select Case Weekday (Now) Case 1, 7 Select Case Weekday (Now) Case 1 MsgBox "Today is Sunday" Case Others MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Pod

V zgornji kodi sem ugnezdil Select Case, da preverim, ali je vikend sobota ali nedelja.

Opomba: Zgornji primer razlaga koncept. To ni najboljši ali najbolj praktičen način, da ugotovite med tednom/vikendom.

Primer 10 - Preverjanje besedilnega niza z izbiro velikih črk

S pomočjo Select Case lahko preverite določene nize in nato na podlagi tega izvedete kodo.

V spodnjem primeru kode od uporabnika zahteva, da vnese ime svojega oddelka in prikaže ime osebe, s katero bi se morali povezati za vkrcanje.

Sub OnboardConnect () Dim Department As String Department = InputBox ("Enter Your Department Name") Izberite Case Case Case "Marketing" MsgBox "Za povezavo se povežite z Bobom Rainesom" Case "Finance" MsgBox "Prosimo, povežite se s Patricia Cruz za vkrcanje" Primer "HR" MsgBox "Prosimo, povežite se z Oliverjem Random za vključitev" Case "Admin" MsgBox "Prosimo, povežite se s Helen Hume za vkrcanje" Case Else MsgBox "Prosimo, povežite se s Tonyjem Randallom za vkrcanje" End Select End Sub

Upam, da so bili vsi zgornji primeri v pomoč pri razumevanju koncepta in uporabe Select Case v Excelu VBA.

Morda vam bodo všeč tudi naslednji VBA vodiči:

  • Zanke VBA v Excelu - za naslednje, naredi medtem, naredi do, za vsako.
  • Za naslednjo zanko v Excelu VBA.
  • Kako posneti makro v Excelu.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave