Rozvádzač Excel VBA
V prípade VBA Switch Case, keď potrebujeme logicky skontrolovať alebo analyzovať stav a vykonať rôzne riadky kódov na základe toho istého, použijeme podmienený príkaz IF-Else. Podobne existuje ešte jeden príkaz Switch Case, ktorý je všeobecnejšie známy ako príkaz Select Case, ktorý môže skontrolovať alebo analyzovať viac logických podmienok a na základe nich vykonať kódové riadky. Ak máte na kontrolu tri alebo viac logických podmienok, odporúča sa namiesto obvyklého príkazu IF-Else použiť príkaz Select Case alebo Switch Case. Pretože v takýchto prípadoch robí kód VBA rýchlejší a zrozumiteľnejší namiesto vnorených príkazov IF-Else.
Prepnite prípad / vyberte prípad
Switch Case alebo Select Case vo VBA pracuje na podobných riadkoch ako vo výpisoch IF-Else. Skontroluje viac logických / podmienených výrazov oproti rôznym hodnotám (prípadom). Len čo ktorýkoľvek prípad vyhovuje podmienke (pre danú podmienku sa stane skutočnosťou), systém vykoná tento prípad a ostatné prípady sa ignorujú, aby sa vykonali. V prípade, že pre danú podmienku platia dva prípady, podľa prvého zákona sa vykoná iba prvý prípad.
Syntax pre prípad Case / Select Case je uvedená nižšie:
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
Kde,
Expression: Toto je výraz, pre ktorý sme chceli skontrolovať alebo analyzovať pomocou rôznych hodnôt prípadov.
value_1, value_2, value_3, … sú logické podmienky, ktoré je potrebné skontrolovať pre daný výraz.
Ako používať vyhlásenie o prepnutí prípadu v programe Excel VBA?
Naučíme sa, ako používať príkaz Switch Case v Exceli pomocou kódu VBA.
Túto šablónu VBA Switch Case Excel si môžete stiahnuť tu - VBA Switch Case Excel TemplatePrípad VBA - príklad č. 1
Skontrolujeme, či je dané číslo menšie ako 100 alebo viac ako 100. Postupujte podľa nasledujúcich krokov:
Krok 1: Vložte nový modul do editora jazyka Visual Basic (VBE). Kliknite na kartu Vložiť > vyberte položku Modul.
Krok 2: Definujte nový podprogram v rámci vloženého modulu, ktorý dokáže uchovať vaše makro.
kód:
Sub switch_case_example1 () End Sub
Krok 3: Definujte novú premennú s názvom usrInpt, ktorá môže obsahovať hodnotu používateľa. Použite funkciu VBA InputBox na vytvorenie vstupného poľa, ktoré preberá užívateľské hodnoty prostredníctvom premennej usrInpt .
kód:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadajte svoju hodnotu") End Sub
Krok 4: Použite príkaz Select Case a zadajte hodnotu zadanú používateľom prostredníctvom premennej usrInpt . Toto je výraz, ktorý musíme skontrolovať pomocou logických podmienok.
kód:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadajte svoju hodnotu") Vyberte Prípad usrInpt End Sub
Krok 5: Zadajte prvý logický test, ktorý sa má skontrolovať v časti Prípad, nasledovne.
kód:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadajte svoju hodnotu") Vyberte prípad Prípad usrInpt je <100 End Sub
Krok 6: Pomocou funkcie MsgBox môžete pridať výstupnú správu, ak je Case <100 pravdivý.
kód:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadajte svoju hodnotu") Vyberte prípad Prípad usrInpt je <100 MsgBox "Zadané číslo je menšie ako 100" End Sub
Krok 7: Teraz musíme poskytnúť spustiteľný príkaz, keď je hodnota pre usrInpt vyššia ako 100. Na dosiahnutie tohto cieľa pridajte prípad a MsgBox.
kód:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadajte svoju hodnotu") Vyberte prípad Prípad usrInpt je 100 MsgBox "Zadané číslo je väčšie ako 100" End Sub
Krok 8: Čo ak je hodnota poskytnutá používateľom presne 100? Nemáme k tomu žiaden prípad. Pridajme tú, ktorá dáva užívateľovi správu, že zadaná hodnota je 100.
kód:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadajte svoju hodnotu") Vyberte prípad Prípad usrInpt je 100 MsgBox "Zadané číslo je väčšie ako 100" Prípad Is = 100 MsgBox "Zadané číslo je 100" End Sub
Krok 9: Musíme ukončiť vyhlásenie Select Case. Vytvorenie slučky ukončíte tlačidlom End Select .
kód:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadajte svoju hodnotu") Vyberte prípad Prípad usrInpt je 100 MsgBox "Zadané číslo je väčšie ako 100" Prípad Is = 100 MsgBox "Zadané číslo je 100" Koniec Vyberte koniec náhradník
Krok 10: Teraz spustite tento kód stlačením tlačidla Spustiť alebo F5. Zobrazí sa nové kontextové pole s požiadavkou na skontrolovanie hodnoty. Zadám hodnotu 110 a stlačím tlačidlo OK na vstupnom poli. Keďže zadané číslo je väčšie ako 100, ihneď po kliknutí na tlačidlo OK sa na obrazovke objaví nová správa s textom „Zadané číslo je väčšie ako 100“.
Prípad VBA - príklad č. 2
Predpokladajme, že chceme zachytiť známku študentov na základe ich známok. Pozrite si nasledujúce kroky o tom, ako to môžeme dosiahnuť.
Krok 1: Definujte novú čiastkovú procedúru s názvom switch_case_example2 .
kód:
Sub switch_case_example2 () End Sub
Krok 2: Definujte dve nové premenné - značky ako celé číslo a známky ako reťazec pomocou príkazu Dim v vytvorenej čiastkovej procedúre.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stupne stôp ako koniec reťazca Sub
Krok 3: Použite funkciu VBA InputBox, prostredníctvom ktorej môže užívateľ zadať hodnotu pre značky premenných.
kód:
Sub switch_case_example2 () Stlmiť značky ako celočíselné Stlmiť známky ako Stringové značky = InputBox ("Zadajte značky") End Sub
Krok 4: Použite príkaz Select Case a zadajte variabilné značky ako výraz, ktorý sa má skontrolovať.
kód:
Sub switch_case_example2 () Stlmiť značky ako celočíselné Stlmiť známky ako Stringové značky = InputBox ("Zadajte značky") Vyberte značky Case End Sub
Keďže chceme študentom prideliť známky na základe známok, ktoré zadávajú, musíme ich najprv definovať.
Krok 5: Príkazom case skontrolujte, či sú značky menšie ako 35. Ak áno, priraďte rôznym hodnotám hodnotu ako „F“.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stupne stôp ako reťazcové značky = InputBox ("Zadajte značky") Vyberte značky prípadu prípad je <35 stupňov = "F" End Sub
Krok 6: Ak sú značky medzi 35 a 45, priraďte hodnotu ako „D“ rôznym stupňom.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stmievané stupne Ako Stringové značky = InputBox ("Zadajte značky") Vyberte Znaky Prípad Je <35 stupňa = "F" Prípad 35 až 45 Stupňov = "D" Koniec Sub
Krok 7: Ak sú zadané značky medzi 46 až 55, hodnota „C“ by sa mala priradiť rôznym stupňom.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stúpajúce stupne Ako reťazcové značky = InputBox ("Zadajte značky") Vyberte Známe prípady Prípad Je <35 stupňov = "F" Prípad 35 až 45 stupňov = "D" Prípad 46 až 55 stupňov = "C" End Sub
Krok 8: Ak sú značky v rozsahu 56 až 65, hodnota priradená rôznym stupňom by mala byť „B“.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stúpajúce stupne Ako reťazcové značky = InputBox ("Zadajte značky") Vyberte Známe prípady Prípad Je <35 stupňov = "F" Prípad 35 až 45 stupňov = "D" Prípad 46 až 55 stupňov = Prípad "C" 56 až 65 stupňov = "B" Koniec Sub
Krok 9: V prípade značiek medzi 66 a 75 by známka mala byť „A“.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stúpajúce stupne Ako reťazcové značky = InputBox ("Zadajte značky") Vyberte Známe prípady Prípad Je <35 stupňov = "F" Prípad 35 až 45 stupňov = "D" Prípad 46 až 55 stupňov = "C" Prípad 56 až 65 stupňov = "B" Prípad 66 až 75 stupňov = "A" Koniec Sub
Krok 10: Ak sú zadané značky väčšie ako 75, premennej stupňa by sa mala priradiť hodnota ako „A +“
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stupne stôp ako reťazcové značky = InputBox ("Zadajte značky") Vyberte značky prípadu prípad je 75 stupňov = "A +" End Sub
Krok 11: Použiť koniec Vyberte zatvorenie slučky Select Case.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stupne stôp ako reťazcové značky = InputBox ("Zadajte značky") Vyberte značky prípadu prípad je 75 stupňov = "A +" koniec vyberte koniec
Krok 12: Teraz musíme skontrolovať, aký je stupeň spojený so známkami, ktoré študent vložil. Aby ste to dosiahli, použite funkciu MsgBox takým spôsobom, že označuje dosiahnuté známky vo vnútri schránky správ.
kód:
Sub switch_case_example2 () Stlmené značky ako celočíselné stmievajúce stupne ako Stringové značky = InputBox ("Zadajte značky") Vyberte ochranné známky Prípad je 75 stupňov = "A +" Koniec vyberte MsgBox "Dosiahnutá známka je:" & známky Koniec Sub
Krok 13: Spustite tento kód stlačením klávesu F5 alebo Run a môžete vidieť vstupné pole VBA s požiadavkou na hodnotu značky. Zadám značky ako 72 a stlačím tlačidlo OK prítomné vo vstupnom poli. Akonáhle som narazil na tlačidlo OK vo vstupnom poli, dostanem okno so správami, ktoré označujú známky spojené so zadanými značkami.
Takto môžeme použiť vyhlásenie Switch / Select Case vo VBA.
Čo je potrebné pamätať
- Prípad Switch je vlastne synonymom vyhlásenia Select Case vo VBA. Nazýva sa to preto, lebo pomocou tohto vyhlásenia môžeme prepínať medzi rôznymi výstupmi súčasne.
- Toto vyhlásenie sa môže použiť ako alternatíva k slučke IF-Else, kedykoľvek máme skontrolovať tri alebo viac podmienok.
- Je to v poriadku, ak vo vyhlásení Select Case nepoužívate prípad ELSE. V takom prípade sa však musíte uistiť, že aspoň jedna podmienka je platná v celej slučke.
Odporúčané články
Toto je príručka pre skrinku VBA. Tu diskutujeme o tom, ako používať vyhlásenie o prepnutí prípadu v aplikácii Excel VBA, spolu s praktickými príkladmi a šablónou Excel na stiahnutie. Môžete si tiež prečítať naše ďalšie navrhované články -
- Zbierka VBA (príklady)
- Výkazy VBA IF | Šablóny programu Excel
- Ako používať funkciu zoradenia Excel VBA?
- VBA počas slučky (príklady so šablónou programu Excel)
- VBA Environ