Izjava o slučaju Excel VBA
Izjava slučaja VBA jedna je od logičnih funkcija. Case Statement testira više logičkih testova i rezultat dobiva na dva načina, tj. Ako je rezultat ili logički test TRUE jedan skup rezultata, a ako je rezultat ili logički test FALSE, onda drugi skup rezultata.

Logički testovi obično se provode pomoću IF formula, bilo da se radi o formuli radnog lista ili u VBA kodiranju; na obje platforme ova nam funkcija pomaže u provođenju mnogih vrsta složenih izračuna. Mnogi od nas ne shvaćaju da imamo alternativu izjavi IF u VBA, tj. "Izjavi slučaja". Ovaj vam članak pruža sve pojedinosti o ovom logičnom iskazu.
Sintaksa
Ispod je sintaksa izjave "Select Case".
Odaberite slučaj "Vrijednost za testiranje" Slučaj je "Logički test" Rezultat ako je slučaj 1 TRUE Slučaj je "Logički test" Rezultat ako je slučaj 2 TRUE Slučaj je "Logički test" Rezultat ako je slučaj 3 TRUE Case Else Ako nijedan od rezultati su TRUE End Select
Ovo je gotovo slično sintaksi izjave IF, ali umjesto da koristimo ELSEIF, koristimo Slučaj 1, Slučaj 2, Slučaj 3 itd.
Primjeri izjave o slučaju VBA
Primjer # 1
U ćeliju A1 unio sam broj kao 240.

Sada ćemo testirati ovaj broj je li veći od 200 ili ne pomoću izraza SELECT CASE .
Korak 1: Otvorite odmah izjavu Select Case.
Kodirati:
Sub Select_Case_Example1 () Select Case End Sub

Korak 2: Jednom kada se otvori "Select Case", trebamo navesti vrijednost koju testiramo. U ovom slučaju testiramo vrijednosti A1 ćelije.
Kodirati:
Sub Select_Case_Example1 () Odaberite opseg slučajeva ("A1"). Vrijednost Kraj Sub

Korak 3: Nakon što se sada da vrijednost koju treba testirati, trebamo primijeniti logičke testove u Excelu pomoću riječi " Case Is ".
Kodirati:
Sub Select_Case_Example1 () Odaberite opseg slučaja ("A1"). Vrijednost slučaja je> 200 Kraj Sub

Korak 4: Sada, u sljedećem retku, moramo navesti vrijednost „rezultat“ ako je primijenjeni logički test ISTINA. U okviru za poruku trebamo rezultat kao "Broj je> 200".
Kodirati:
Sub Select_Case_Example1 () Odaberite raspon slučaja ("A1"). Vrijednost slučaja je> 200 MsgBox "Broj je> 200" Kraj Sub

Korak 5: U ovom primjeru potrebna su nam samo dva rezultata, pa neću koristiti više izjava „Slučaj je“. Dalje ću upotrijebiti riječ "Case Else" da zatvorim VBA "Select Case" izjavu.
Kodirati:
Sub Select_Case_Example1 () Odaberite raspon slučaja ("A1"). Vrijednost slučaja je> 200 MsgBox "Broj je> 200" Case Else MsgBox "Broj je <200" Kraj Sub

Korak 6: Nakon što se dostave svi slučajevi, moramo zatvoriti izjavu select case pomoću riječi "End Select".
Kodirati:
Sub Select_Case_Example1 () Odaberite raspon slučaja ("A1"). Vrijednost slučaja je> 200 MsgBox "Broj je> 200" Case Else MsgBox "Broj je <200" End Select End Sub

Korak 7: Sada pokrenite kôd i pogledajte kakav je rezultat koji smo dobili u okviru za poruku VBA.

Rezultat koji smo dobili je "Broj je> 200", jer je u ćeliji A1 vrijednost 240, što je> 200.
Primjer # 2
Sada ćemo vidjeti nekoliko praktičnih primjera rezultata testiranja u stvarnom vremenu. Pogledajte donji VBA kod.
Kodirati:
Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox ("Ocjena treba biti c / b 0 do 100", "Koji je rezultat koji želite testirati") Odaberite slučaj ScoreCard Case> = 85 MsgBox "Distinction" Case Je li> = 60 MsgBox "Prva klasa" kućište Je> = 50 MsgBox "Druga klasa" je Kućište> = 35 MsgBox "Proći" Case Drugo MsgBox "Fail" End Select End Sub

Dopustite mi da objasnim kôd redak po redak da bih ga bolje razumio.
Prvo sam varijablu proglasio Integer, a za tu sam varijablu dodijelio InputBox u VBA, gdje korisnik mora unijeti rezultat između 0 i 100.
Kada pokrenete kôd, vidjet ćete okvir za unos kao dolje, a u ovaj okvir za unos trebate unijeti rezultat.

Sad što god unesemo u okvir za unos, pohranit će se u varijablu "ScoreCard".
In the next line, I have applied a select case statement to test this score.
First, it will test the ScoreCard>=85 or not. If this is TRUE, then we will get the value in the message box as “Distinction.”
Select Case ScoreCard Case Is>= 85 MsgBox "Distinction"
Similarly, in the following lines, I have applied the second test as ScoreCard>=60. If this is TRUE, then it will show the result as “First.”
Case Is>= 60 MsgBox "First Class"
Like this, I have applied other tests as well, and in the end, I have used the “Case Else” statement. If all the applied logical tests are FALSE, then we will get the result as “Fail.”
Case Else MsgBox "Fail"
Now I have supplied 68 as the score, and we should get the result as “First Class” in the message box.

Example #3 - Using the “To” keyword
In the above example, we have used student scores to arrive at the result. The same test can be conducted by using the “To” word to determine the lower limit and upper limit of the logical test.
Code:
Sub Select_Case_Example3() Dim ScoreCard As Integer ScoreCard = Application.InputBox("Score should be b/w 0 to 100", "What is the score you want to test") Select Case ScoreCard Case 85 To 100 MsgBox "Distinction" Case 60 To 84 MsgBox "First Class" Case 50 To 59 MsgBox "Second Class" Case 35 To 49 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub

I have used the same code as above, but the only yellow-colored area I have changed here. Based on the number we type in the input box accordingly, we will get the result.

Things to Remember
- Odaberi slučaj alternativa je izjavi IF.
- Select Case dostupan je samo s VBA.
- U prvom retku "Select Case" trebamo navesti samo vrijednost koju treba testirati. Zatim u retku "Slučaj" moramo primijeniti logički test. To je za razliku od našeg IF stanja.