Vyhlásenie prípadu Excel VBA
VBA Case Statement je jednou z logických funkcií. Príkaz Case testuje viac logických testov a k výsledku dospeje dvoma spôsobmi, tj ak je výsledok alebo logický test PRAVDA jedna sada výsledku a ak je výsledok alebo logický test FALSE, potom druhá sada výsledku.

Logické testy sa zvyčajne vykonávajú pomocou vzorcov IF, či už ide o vzorec listu alebo kódovanie VBA; na oboch platformách nám táto funkcia pomáha vykonávať mnoho druhov komplikovaných výpočtov. Mnoho z nás si neuvedomuje, že máme alternatívu k vyhláseniu IF vo VBA, tj „Prípad prípadu“. V tomto článku nájdete všetky podrobnosti o tomto logickom tvrdení.
Syntax
Nižšie je uvedená syntax vyhlásenia „Vybrať prípad“.
Vyberte prípad „Hodnota, ktorá sa má testovať“ Prípad je „Logický test“ Výsledok, ak je Prípad 1 SKUTOČNÝ Prípad je „Logický test“ Výsledok, ak je Prípad 2 Pravý Prípad Je „Logický test“ Výsledok, ak Prípad 3 je PRAVÝ Prípad Else Ak žiadny z výsledky sú SKUTEČNÉ Vybrať koniec
Toto je takmer podobné syntaxe príkazu IF, ale namiesto použitia príkazu ELSEIF použijeme prípad 1, prípad 2, prípad 3 atď.
Príklady prípadových vyhlásení VBA
Príklad č
V bunke A1 som zadal číslo ako 240.

Teraz toto číslo otestujeme, či je väčšie ako 200 alebo nie, pomocou príkazu SELECT CASE .
Krok 1: Teraz otvorte príkaz Select Case.
Kód:
Sub Select_Case_Example1 () Vyberte Sub End Case

Krok 2: Po otvorení „Výberu prípadu“ musíme uviesť, akú hodnotu testujeme. V tomto prípade testujeme hodnoty bunky A1.
Kód:
Sub Select_Case_Example1 () Vyberte rozsah prípadov ("A1"). Hodnota Koniec Sub

Krok 3: Po zadaní hodnoty, ktorá sa má teraz testovať, musíme použiť logické testy v programe Excel pomocou slova „ Prípad je “.
Kód:
Sub Select_Case_Example1 () Vyberte rozsah prípadov („A1“). Prípad hodnoty je> 200 End Sub

Krok 4: Teraz, v ďalšom riadku, musíme zadať hodnotu „result“, ak je použitý logický test TRUE. V okne so správou potrebujeme výsledok ako „Číslo je> 200“.
Kód:
Sub Select_Case_Example1 () Select Range Case ("A1"). Value Case Is> 200 MsgBox "Number is> 200" End Sub

Krok 5: V tomto príklade potrebujeme iba dva výsledky, takže nebudem používať viac výrokov „Case Is“. Ďalej použijem slovo „Case Else“ na uzavretie vyhlásenia VBA „Select Case“.
Kód:
Sub Select_Case_Example1 () Select Range Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Sub

Krok 6: Keď sú dodané všetky prípady, musíme príkaz select case uzavrieť pomocou slova „End Select“.
Kód:
Sub Select_Case_Example1 () Select Range Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Select End Sub

Krok 7: Teraz spustite kód a uvidíte, aký je výsledok, ktorý dostaneme v poli so správou VBA.

Výsledok, ktorý sme dostali, je „Číslo je> 200“, pretože v bunke A1 je hodnota 240, čo je> 200.
Príklad č
Teraz uvidíme niekoľko praktických príkladov testovacích výsledkov v reálnom čase. Pozrite sa na nižšie uvedený kód VBA.
Kód:
Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox („Skóre by malo byť čiernobiele 0 až 100“, „Aké skóre chcete otestovať“) Select Case ScoreCard Case Is> = 85 MsgBox „Distinction“ Case Is> = 60 prípadov MsgBox „First Class“ je> = 50 prípadov MsgBox „Second Class“ Is> = 35 MsgBox „Pass“ Case Else MsgBox „Fail“ End Select End Sub

Dovoľte mi vysvetliť kód po riadku, aby som lepšie porozumel.
Najskôr som deklaroval premennú ako Integer a pre túto premennú som priradil InputBox vo VBA, kde musí užívateľ zadať skóre medzi 0 a 100.
Po spustení kódu sa zobrazí vstupné pole, ako je uvedené nižšie, a do tohto vstupného poľa musíte zadať skóre.

Teraz bude všetko, čo zadáme do vstupného poľa, uložené do premennej „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
- Select Case je alternatívou k vyhláseniu IF.
- Select Case je k dispozícii iba s VBA.
- V prvom riadku „Vybrať prípad“ musíme uviesť iba hodnotu, ktorú je potrebné otestovať. Potom v riadku „Prípad“ musíme použiť logický test. Je to na rozdiel od nášho stavu IF.