Prepínač VBA - Ako používať príkaz Switch v Excel VBA?

Obsah:

Anonim

Vyhlásenie príkazu Excel VBA

Prepínač vo VBA je podobný ako funkcia výberu prípadu. Jediný rozdiel medzi nimi je, že v prepínači musíme v porovnaní s vybraným prípadom napísať omnoho menšie kódy. Príkaz switch môžeme napísať v rámci podprogramu alebo ho môžeme napísať ako užívateľsky definovanú funkciu vo VBA.

Prepínač vo VBA vyhodnotí výraz a vydá výstup na základe podmienok pre tento výraz. Vo vyhláseniach o vybraných prípadoch sme definovali prípady, že ak máme prípad, výsledok by mal byť b a tak ďalej. Vyžadovalo si to napísať veľa kódov pre príkaz case case, ale v aplikácii Switch môžeme zlúčiť všetky podmienky a výrazy do jedného príkazu, namiesto toho, aby sme mali viac príkazov case.

Syntax príkazu Switch

Switch vypočíta prvý výraz a ak je hodnota true, vráti hodnotu pre výraz a ak hodnota pre výraz 1 nie je pravdivá, pokračuje pre rovnaký výpočet pre výraz 2 a ak je výsledok true, zobrazí sa hodnota 2, ale ak výraz je vrátený je nepravdivý, prepne sa na iný výraz.

Čo sa stane, ak žiaden z výrazov nie je pravdivý a všetky sa vrátia ako Falošné, v takom prípade dostaneme chybu runtime, pokiaľ pre takýto scenár nemáme preventívne riešenie chýb.

Ako používať príkaz Switch v Excel VBA?

Nižšie sú uvedené rôzne príklady použitia príkazu VBA Switch Statement v Exceli.

Túto šablónu VBA Switch Excel si môžete stiahnuť tu - VBA Switch Excel Template

Prepínač VBA - príklad č. 1

Začnime základným príkladom, aby sme získali predstavu o VBA prepínači. Berieme vstup od užívateľa a na základe tohto vstupu definujeme výstup. Vezmeme vstup od čísla 1 do 5 a na základe vstupu budeme mať preddefinované výsledky, ale ak používateľ zadá iné číslo, ako je náš rozsah, budeme musieť túto chybu vyriešiť.

Ak chcete použiť príkaz Prepnúť v programe Excel VBA, postupujte podľa nasledujúcich krokov:

Krok 1: Na karte Visual Basic zadajte editor VB z karty vývojára.

Krok 2: V okne VB Editor vložte nový modul z karty Vložiť.

Krok 3: Vyhlásenie nového podprogramu v práve vytvorenom novom module.

kód:

 Čiastková vzorka () Koniec č 

Krok 4: Vyhláste dve premenné A a B, jednu ako celé číslo a druhú ako reťazec.

kód:

 Čiastková vzorka () Dim A ako celé číslo Dim B ako koniec reťazca Sub 

Krok 5: V premennej A uložte hodnotu zadanú používateľom pomocou funkcie vstupného poľa.

kód:

 Čiastková vzorka () Dim A ako celé číslo Dim B ako Reťazec A = InputBox („Zadajte hodnotu“, „hodnota by mala byť medzi 1 až 5“) End Sub 

Krok 6: Teraz v premennej B použijeme príkaz VBA switch na vyhodnotenie výsledku podľa vstupu poskytnutého používateľom.

kód:

 Čiastková vzorka () Dim A ako celé číslo Dim B ako Reťazec A = InputBox („Zadajte hodnotu“, „hodnota by mala byť medzi 1 až 5“) B = Prepínač (A = 1, „One“, A = 2, „Two ", A = 3, " tri ", A = 4, " štyri ", A = 5, " päť ") 

Krok 5: Zobrazte hodnotu uloženú v B pomocou funkcie MSGBOX.

kód:

 Čiastková vzorka () Dim A ako celé číslo Dim B ako Reťazec A = InputBox („Zadajte hodnotu“, „hodnota by mala byť medzi 1 až 5“) B = Prepínač (A = 1, „One“, A = 2, „Two ", A = 3, " tri ", A = 4, " štyri ", A = 5, " päť ") MsgBox B End Sub 

Krok 6: Spustite vyššie uvedený kód stlačením klávesu F5 a požiada nás o zadanie celého čísla. Zadajte číslo 3 a stlačením tlačidla Ok zobrazte výsledok.

Krok 7: Teraz znova spustite kód a zadajte číslo 6 a pozrite sa na výsledok, ktorý dostaneme.

Dostávame chybu runtime, pretože v našom prehlásení o prepnutí neexistuje výraz na definovanie 6. Takže v takýchto scenároch potrebujeme nejaké preventívne riešenie chýb.

Krok 8: Na prekonanie tejto chyby doby behu deklarujte ako premennú inú premennú Var.

kód:

 Čiastková vzorka () Dim A ako celé číslo Dim B ako reťazec Dim var Var Variant A = InputBox („Zadajte hodnotu“, „hodnota by mala byť medzi 1 až 5“) B = Prepínač (A = 1, „One“, A = 2, „Dva“, A = 3, „Tri“, A = 4, „Štyri“, A = 5, „Päť“) MsgBox B End Sub 

Krok 9: Pred našim príkazom switch použite príkaz goto na chybu error, takže ak kód nájde chybu, vie, kam má ísť.

kód:

 Čiastková vzorka () Dim A ako celé číslo Dim B ako reťazec Dim var Var Variant A = InputBox („Zadajte hodnotu“, „hodnota by mala byť medzi 1 až 5“) Pri chybe GoTo var B = Prepínač (A = 1, „Jedna ", A = 2, " dva ", A = 3, " tri ", A = 4, " štyri ", A = 5, " päť ") MsgBox B End Sub Sub 

Krok 10: Teraz definujte, čo sa stane, ak sa v kóde vyskytne chyba,

kód:

 Čiastková vzorka () Dim A ako celé číslo Dim B ako reťazec Dim var Var Variant A = InputBox („Zadajte hodnotu“, „hodnota by mala byť medzi 1 až 5“) Pri chybe GoTo var B = Prepínač (A = 1, „Jedna ", A = 2, " Dva ", A = 3, " Tri ", A = 4, " Štyri ", A = 5, " Päť ") MsgBox B var: MsgBox" Zadali ste neplatné číslo "Pokračovať Nasledujúci koniec Sub 

Krok 11: Teraz spustite kód znova stlačením F5 alebo kliknutím na tlačidlo Prehrať a zadajte hodnotu 6 a potom stlačte ok, aby ste videli konečný výsledok v prípade, že príkaz switch zistí chybu.

Prepínač VBA - príklad č. 2

V tomto príklade mám údaje v hárku 1, ktorý obsahuje názov niektorých filmov a ich trvanie v minútach. Na základe ich dĺžky chcem definovať, či je film krátky alebo super dlhý. Pozrite sa na nižšie uvedené údaje.

Ak chcete použiť príkaz Switch v Excel VBA, postupujte podľa nasledujúcich krokov:

Krok 1: Začnime tým istým modulom a začneme definovaním ďalšieho podprogramu nasledovne.

 Čiastková vzorka1 () Koncová čiastková č 

Krok 2: Vyhláste dve premenné A a B, jednu ako celočíselnú inú ako reťazec,

 Čiastková vzorka1 () Dim A ako celé číslo Dim B ako koniec reťazca Sub 

Krok 3: Teraz v premennej A uložme hodnotu dĺžky filmu pre ktorýkoľvek z filmov.

 Čiastková vzorka1 () Dim A ako celé číslo Dim B ako reťazec A = rozsah ("A3"). Ofset (0, 1). Hodnota konca Sub 

Krok 4: Teraz v premennej B používajme príkaz prepínača VBA na definovanie toho, aký by mal byť scenár pre každú dĺžku filmu.

 Čiastková vzorka1 () Dim A ako celé číslo Dim B ako reťazec A = rozsah ("A3"). Ofset (0, 1). Hodnota B = prepínač (A <= 70, "príliš krátka", A <= 100, "krátka" ", A <= 120, " Dlhá ", A <= 150, " Príliš dlhá ") Koniec Sub 

Krok 5: Čo teraz, ak je hodnota väčšia ako 180, mali by sme tu mať iný obslužný program chýb alebo jednoducho môžeme napísať iný výraz ako True, Value. Pretože všetky ostatné hodnoty sa vrátia, keď falošný kód vykoná tento výraz.

 Čiastková vzorka1 () Dim A ako celé číslo Dim B ako reťazec A = rozsah ("A3"). Ofset (0, 1). Hodnota B = prepínač (A <= 70, "príliš krátka", A <= 100, "krátka" ", A <= 120, " Dlhá ", A <= 150, " Príliš dlhá ", Pravda, " Nudná ") End Sub 

Krok 6: Zobrazte hodnotu B pomocou funkcie msgbox.

 Čiastková vzorka1 () Dim A ako celé číslo Dim B ako reťazec A = rozsah ("A3"). Ofset (0, 1). Hodnota B = prepínač (A <= 70, "príliš krátka", A <= 100, "krátka" ", A <= 120, " Dlhá ", A <= 150, " Príliš dlhá ", Pravda, " nudná ") MsgBox B End Sub 

Krok 7: Spustite kód stlačením klávesu F5 alebo kliknutím na tlačidlo Prehrať a pozrite si výstup.

Bunka A3 má film 2, ktorého dĺžka bola 100, takže výstup bol krátky.

Prepínač VBA - príklad č. 3

Použiť príkaz switch na vytvorenie funkcie definovanej používateľom pre vyššie uvedený príklad, aby sme ho mohli kedykoľvek použiť v našom pracovnom hárku.

Ak chcete použiť príkaz Prepnúť v programe Excel VBA, postupujte podľa nasledujúcich krokov:

Krok 1: V tom istom module deklarujte funkciu nazývanú ako dĺžka filmu.

 Funkcia FilmLength (Leng As Integer) ako funkcia String End 

Krok 2: Teraz pomocou príkazu VBA Switch definujte parametre na základe ich dĺžky takto:

 Funkcia FilmLength (Leng As Integer) As String FilmLength = Switch (Leng <= 70, "Too Short", Leng <= 100, "Short", Leng <= 120, "Long", Leng <= 150, "too Long"), True, „nuda“) End Function 

Krok 3: Teraz sa vráťte do pracovného hárka, kde sme mali svoje údaje, zadajte = FilmLength (

Krok 4: Vidíme, že naša funkcia poskytuje argument ako hodnoty v bunke B2.

Krok 5: Po použití vzorca stlačte kláves Enter.

Krok 6: Teraz pretiahnite funkciu do bunky C10 a pozrite si výsledok.

Čo je potrebné pamätať

  • Funkcia Switch vyhodnotí výraz v ňom. Ak je prvý výraz vyhodnotený ako pravdivý, potom nevyhodnocuje ostatné výrazy.
  • Ak žiadny z výrazov nie je pravdivý, vráti chybu runtime.
  • V príkazu alebo výraze prepínača musíme mať obslužný program chýb, aby sa v prípade, že sa každý výraz vráti nepravdivo, nestretla sa chyba runtime.
  • Prepínač je podobný príkazu case case.

Odporúčané články

Toto je príručka pre VBA Switch. Tu si preberieme, ako používať príkaz switch v Exceli VBA, spolu s niektorými praktickými príkladmi a šablónou Excel na stiahnutie. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Použitie funkcie VBA InStr
  2. Excel SWITCH Funkcia
  3. Náhodné číslo VBA
  4. CONCATENATE Funkcia v Exceli