Excel VBA atlases gadījuma paziņojums - izskaidrots ar piemēriem

Excel VBA ir IF IF Else konstrukcija, kuru varat izmantot, lai analizētu vairākus nosacījumus un izpildītu kodus, pamatojoties uz šiem nosacījumiem.

Vēl viena līdzīga konstrukcija, kas ļauj pārbaudīt vairākus nosacījumus, ir ATLASĪT LIETU paziņojums, apgalvojums.

Atlasīt lietu ir noderīga, ja jums ir trīs vai vairāki nosacījumi, kurus vēlaties pārbaudīt. Varat to izmantot arī ar diviem nosacījumiem (bet es uzskatu, ka šajos gadījumos to ir vieglāk izmantot).

Vienkāršs piemērs, kurā paziņojums “Izvēlēties lietu” ir noderīgs, ja vēlaties iegūt skolēna atzīmi, pamatojoties uz atzīmēm, kuras viņš/viņa ir ieguvis (apskatīts kā piemērs vēlāk šajā apmācībā).

Piezīme. Visi šajā apmācībā aplūkotie piemēru kodi ir paredzēti ievietošanai VBA modulī.

Atlasiet lietu sintakse

Zemāk ir atlasīta gadījuma sintakse programmā Excel VBA:

Atlasiet gadījuma tests_izteiksmes gadījuma vērtība_1 koda bloks, kad Test_Expression = Vērtība_1 Gadījuma vērtība_2 Koda bloks, kad Test_Expression = Vērtība_2 Gadījuma vērtība_3 Koda bloks, kad Test_Expression = Vērtība_3 Lieta Cits Koda bloks, ja neviens no gadījuma nosacījumiem nav izpildīts Beigas Atlasīt
  • Test_Expression: šī ir izteiksme, kuras vērtību mēs analizējam, izmantojot dažādus gadījumus (labāk izskaidroti ar tālāk sniegtajiem piemēriem).
  • Nosacījums_1, Nosacījums_2,…: šie ir nosacījumi, saskaņā ar kuriem tiek pārbaudīta teksta izteiksme. Ja tas atbilst nosacījumam, tad tiek izpildīts dotā nosacījuma koda bloks.

Katram atlasītajam gadījumam, ko izmantojat, ir jāizmanto priekšraksts Atlasīt beigas.

Piezīme: Tiklīdz nosacījums ir izpildīts, VBA iziet no izvēlētā gadījuma konstrukcijas. Tātad, ja jums ir pieci nosacījumi un otrais nosacījums ir izpildīts, VBA iziet no izvēles gadījuma - un pārējie nosacījumi netiks pārbaudīti.

Atlasiet lietu piemērus

Tagad, lai labāk saprastu, kā izmantot VBA paziņojumu, apskatīsim dažus piemērus.

Ņemiet vērā, ka lielākā daļa šīs apmācības piemēru ir domāti, lai izskaidrotu šo jēdzienu. Tas var būt vai nebūt labākais veids, kā paveikt darbu.

Sāksim ar vienkāršu piemēru, lai redzētu, kā Select Case ļauj mums pārbaudīt nosacījumus.

1. piemērs - pārbaudiet numurus

Tālāk redzamajā piemērā kods lūdz lietotājam ievadīt jebkuru skaitli no 1 līdz 5, un pēc tam tiek parādīts ziņojumu lodziņš ar lietotāja ievadīto numuru.

Sub CheckNumber () Dim UserInput kā vesels skaitlis UserInput = InputBox ("Lūdzu, ievadiet skaitli no 1 līdz 5") Izvēlieties Case UserInput Case 1 MsgBox "Jūs ievadījāt 1" Case 2 MsgBox "Jūs ievadījāt 2" Case 3 MsgBox "Jūs ievadījāt 3" Lieta 4 MsgBox "Jūs ievadījāt 4" Lieta 5 MsgBox "Jūs ievadījāt 5" beigas Atlasiet beigu apakšdaļu

Ņemiet vērā, ka šis kods ir tālu no noderīga un nav pat drošs. Piemēram, ja ievadāt 6 vai jebkuru virkni, tas neko nedos. Bet, kā jau minēju, mans nolūks šeit ir parādīt, kā darbojas Select Case.

2. piemērs. Izvēlētā gadījuma izmantošana ar IS nosacījumu

Jūs varat izmantot IS nosacījumu ar konstrukcijas izvēles lietu, lai pārbaudītu skaitļu vērtību.

Zemāk redzamais kods pārbauda, ​​vai ievades numurs ir lielāks par 100.

Sub CheckNumber () Dim UserInput kā vesels skaitlis UserInput = InputBox ("Lūdzu, ievadiet numuru") Atlasiet lietu UserInput Case Is = 100 MsgBox "Jūs ievadījāt skaitli, kas ir lielāks (vai vienāds ar) 100" Beigas Atlasiet beigu apakšdaļu

3. piemērs - lietojot citu gadījumu, lai noķertu visu

Iepriekš minētajā piemērā es izmantoju divus nosacījumus (mazāk nekā 100 vai lielāks vai vienāds ar 100).

Otrā gadījuma vietā ar nosacījumu varat izmantot arī lietu Else.

Lieta Else darbojas kā visaptverošs un viss, kas neietilpst nevienā no iepriekšējām lietām, tiek izskatīts lietā Else.

Zemāk ir koda piemērs, kur esmu izmantojis lietu Else:

Sub CheckNumber () Dim UserInput kā vesels skaitlis UserInput = InputBox ("Lūdzu, ievadiet numuru") Atlasiet lietu UserInput Case ir <100 MsgBox "Jūs ievadījāt skaitli, kas mazāks par 100" Case Else MsgBox "Ievadījāt skaitli, kas lielāks par (vai vienāds ar ) 100 "Beigas Atlasiet Beigu apakš

4. piemērs - skaitļu diapazona izmantošana

Atlasītajā gadījumā varat arī pārbaudīt numuru diapazonu.

Zemāk esošais kods pieprasa ievadi un parāda ziņojumu lodziņu, pamatojoties uz vērtību.

Sub CheckNumber () Dim UserInput kā vesels skaitlis UserInput = InputBox ("Lūdzu, ievadiet skaitli no 1 līdz 100") Atlasiet lietu UserInput Case 1 to 25 MsgBox "Jūs ievadījāt skaitli, kas mazāks par 25" Case 26 to 50 MsgBox "Jūs ievadījāt numuru no 26 līdz 50 "gadījums no 51 līdz 75 MsgBox" Jūs ievadījāt skaitli no 51 līdz 75 "gadījums no 75 līdz 100 MsgBox" Ievadījāt skaitli, kas ir lielāks par 75 "Beigas Atlasiet beigu apakšdaļu

5. piemērs - iegūstiet atzīmi, pamatojoties uz atzīmēm

Līdz šim mēs esam redzējuši pamata piemērus (kas praktiskajā pasaulē nav īsti noderīgi).

Šeit ir piemērs, kas ir tuvāk reālās pasaules piemēram, kur Excel VBA varat izmantot izvēles gadījumu.

Šis kods sniegs jums atzīmi, ko students saņem, pamatojoties uz eksāmena atzīmēm.

Sub Grade () Dim StudentMarks kā vesels skaitlis Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") Atlasiet Case StudentMarks Lieta ir <33 FinalGrade = "F" Gadījums no 33 līdz 50 FinalGrade = "E" Case 51 to 60 FinalGrade = "D "Case 60 to 70 FinalGrade =" C "Case 70 to 90 FinalGrade =" B "Case 90 to 100 FinalGrade =" A "End Select MsgBox" The Grade is "& FinalGrade End Sub

Iepriekš minētais kods lūdz lietotājam atzīmes un, pamatojoties uz to, parāda ziņojumu lodziņu ar galīgo atzīmi.

Iepriekš minētajā kodā esmu norādījis visus nosacījumus - atzīmēm 0 - 100.

Vēl viens veids, kā izmantot atlasīto lietu, ir beigās izmantot citu lietu. Tas ir noderīgi, ja esat uzskaitījis visus nosacījumus un pēc tam norādāt, kā rīkoties, ja neviens no nosacījumiem nav izpildīts.

Zemāk esošais kods ir pakāpes koda variants ar nelielām izmaiņām. Galu galā tam ir paziņojums par citu gadījumu, kas tiks izpildīts, ja neviens no iepriekš minētajiem nosacījumiem nav patiess.

Sub CheckOddEven () Dim StudentMarks kā vesels skaitlis Dim FinalGrade kā virkne StudentMarks = InputBox ("Ievadiet atzīmes") Atlasiet Case StudentMarks Lieta ir <33 FinalGrade = "F" Case 33 to 50 FinalGrade = "E" Case 51 to 60 FinalGrade = "D "Case 60 to 70 FinalGrade =" C "Case 70 to 90 FinalGrade =" B "Case Else FinalGrade =" A "End Select MsgBox" Grade is "& FinalGrade End Sub

6. piemērs. Pielāgotas funkcijas (UDF) izveide, izmantojot izvēles lietu

Iepriekš minētajā piemērā kods lūdza lietotājam ievadīt atzīmes.

Varat arī izveidot pielāgotu funkciju (lietotāja definēta funkcija), kuru var izmantot tāpat kā jebkuru parastu darblapas funkciju un kura atgriež skolēnu atzīmi.

Zemāk ir kods, kas izveidos pielāgoto formulu:

Funkcija GetGrade (StudentMarks kā vesels skaitlis) Dim FinalGrade kā virkne Izvēlēties gadījumu StudentMarks Lieta ir <33 FinalGrade = "F" Gadījums no 33 līdz 50 FinalGrade = "E" gadījums no 51 līdz 60 FinalGrade = "D" Lieta no 60 līdz 70 FinalGrade = "C" Lieta no 70 līdz 90 FinalGrade = "B" Lieta citādi FinalGrade = "A" beigas Izvēlieties GetGrade = FinalGrade beigu funkcija

Kad esat ievadījis šo kodu modulī, darblapā varat izmantot funkciju GetGrade, kā parādīts zemāk.

7. piemērs. Pārbaudiet ODD / EVEN, izvēloties Case

Zemāk ir koda piemērs, kurā es pārbaudu, vai skaitlis šūnā A1 ir nepāra vai pāra.

Sub CheckOddEven () CheckValue = Range ("A1"). Value Select Case (CheckValue Mod 2) = 0 Case True MsgBox "Skaitlis ir pāra" Case False MsgBox "Skaitlis ir nepāra" Beigas Atlasiet beigu apakšdaļu

8. piemērs - darba dienas/nedēļas nogales pārbaude (vairāki nosacījumi)

Varat arī izmantot Izvēlēties lietu, lai pārbaudītu vairākas vērtības vienā un tajā pašā gadījumā.

Piemēram, zemāk esošais kods izmanto pašreizējo datumu, lai parādītu, vai šodien ir darba diena vai nedēļas nogale (kur nedēļas nogales dienas ir sestdiena un svētdiena)

Sub CheckWeekday () Select Case Weekday (Now) Case 1, 7 MsgBox "Today is a Weekend" Case Else MsgBox "Today is a Weekday" End Izvēlieties Beigu apakšdaļa

Iepriekš minētajā kodā mēs pārbaudām divus nosacījumus (1 un 7) vienā un tajā pašā gadījumā.

Piezīme. Funkcija Weekday atgriež 1 svētdienai un 7 sestdienai.

9. piemērs. Ligzdotu atlasīto gadījumu paziņojumi

Varat arī ievietot vienu atsevišķa gadījuma paziņojumu citā.

Zemāk ir kods, kas pārbauda, ​​vai diena ir darba diena vai nedēļas nogale, un, ja tā ir nedēļas nogale, tad tiks parādīts, vai tā ir sestdiena vai svētdiena.

Sub CheckWeekday () Select Case Weekday (Now) Case 1, 7 Case Case Weekday (Now) Case 1 MsgBox "Šodien ir svētdiena" Case Else MsgBox "Šodien ir sestdiena" End Select Case Else MsgBox "Today is a Weekday" End Select End Sub

Iepriekš minētajā kodā es esmu ievietojis atlases lietu, lai pārbaudītu, vai nedēļas nogale ir sestdiena vai svētdiena.

Piezīme. Iepriekš parādītais piemērs ir jēdziena skaidrojums. Tas nav labākais vai praktiskākais veids, kā uzzināt darba dienu/nedēļas nogali.

10. piemērs - teksta virknes pārbaude, izmantojot atlasīto reģistru

Jūs varat pārbaudīt konkrētas virknes, izmantojot izvēloties lietu un pēc tam izpildīt kodu, pamatojoties uz to.

Tālāk redzamajā koda paraugā lietotājam tiek lūgts ievadīt nodaļas nosaukumu un tiek parādīts tās personas vārds, ar kuru viņam jāsazinās, lai sāktu darbu.

Sub OnboardConnect () Dim departaments kā virkņu nodaļa = InputBox ("Ievadiet savu nodaļas nosaukumu") Atlasiet lietu departamenta lietu "Mārketings" MsgBox "Lūdzu, sazinieties ar Bobu Rainesu, lai uzsāktu" Case "Finance" MsgBox "Lūdzu, sazinieties ar Patricia Cruz, lai sāktu darbu" Lieta "HR" MsgBox "Lūdzu, sazinieties ar Oliveru Randu, lai sāktu darbu" Lietas "administrators" MsgBox "Lūdzu, sazinieties ar Helēnu Hūmu, lai ieviestu" Case Else MsgBox "Lūdzu, sazinieties ar Tony Randall, lai sāktu darbu" End Select End Sub Sub

Ceru, ka visi iepriekš minētie piemēri bija noderīgi, lai izprastu Select Case jēdzienu un pielietojumu programmā Excel VBA.

Jums varētu patikt arī šādas VBA apmācības:

  • Excel VBA cilpas - nākamajam, dariet laiku, dariet līdz, katram.
  • Nākamajai cilpai programmā Excel VBA.
  • Kā ierakstīt makro programmā Excel.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave