Přepínač VBA - Jak používat příkaz Switch v aplikaci Excel VBA?

Obsah:

Anonim

Prohlášení Excel VBA Switch

Přepínač ve VBA je podobný funkci výběru případu. Jediný rozdíl mezi nimi je, že musíme ve vypínači psát mnohem menší kódy ve srovnání s vybranými případy. Můžeme napsat příkaz switch uvnitř podprogramu nebo ho můžeme napsat jako uživatelem definovanou funkci ve VBA.

Přepínač ve VBA vyhodnotí výraz a dává výstup na základě podmínek pro tento výraz. Ve výběrových případech jsme definovali případy, že pokud máme nějaký případ, výsledek by měl být b a tak dále. To vyžadovalo napsat mnoho kódů pro příkaz case case, ale ve Switch můžeme sloučit všechny podmínky a výrazy do jednoho příkazu, spíše než mít více příkazů case.

Syntaxe příkazu Switch

Switch vypočítá první výraz a pokud je hodnota true, vrátí hodnotu pro výraz a pokud hodnota pro výraz 1 není pravdivá, pokračuje pro stejný výpočet pro výraz 2 a pokud je výsledek pravdivý, zobrazí se hodnota 2, ale pokud výraz je vrácen nepravdivý, přepne se na jiný výraz.

Co se tedy stane, pokud žádný z výrazů není pravdivý a všechny jsou vráceny jako False, v takovém případě dostaneme chybu runtime, pokud pro takový scénář nemáme preventivní zpracování chyb.

Jak používat příkaz Switch v aplikaci Excel VBA?

Níže jsou uvedeny různé příklady použití příkazu VBA Switch v Excelu.

Tuto šablonu VBA Switch Excel si můžete stáhnout zde - VBA Switch Excel Template

Přepínač VBA - Příklad č. 1

Začněme základním příkladem, abychom získali představu o příkazu VBA switch. Vezmeme vstup od uživatele a na základě tohoto vstupu definujeme výstup. Vezmeme vstup od čísla 1 do 5 a na základě vstupu budeme mít předdefinované výsledky, ale pokud uživatel zadá jiné číslo než náš rozsah, budeme muset tuto chybu vyřešit.

Chcete-li použít příkaz Switch v aplikaci Excel VBA, postupujte takto:

Krok 1: Na kartě Visual Basic zadejte editor VB z karty vývojáře.

Krok 2: V okně editoru VB vložte nový modul ze záložky Vložit.

Krok 3: Vyhlásit nový podprogram v nově vytvořeném modulu.

Kód:

 Vzorek () Konec Sub 

Krok 4: Deklarujte dvě proměnné A a B, jednu jako celé číslo a druhou jako řetězec.

Kód:

 Dílčí vzorek () Dim A jako celé číslo Dim B jako řetězec End Sub 

Krok 5: V proměnné A uložte hodnotu zadanou uživatelem pomocí funkce vstupního pole.

Kód:

 Dílčí vzorek () Dim A jako celé číslo Dim B jako řetězec A = InputBox („Zadejte hodnotu“, „hodnota by měla být mezi 1 až 5“) End Sub 

Krok 6: Nyní v proměnné B použijeme příkaz VBA switch k vyhodnocení výsledku podle vstupu poskytnutého uživatelem.

Kód:

 Dílčí vzorek () Dim A jako celé číslo Dim B jako řetězec A = InputBox ("Zadejte hodnotu", "hodnota by měla být mezi 1 až 5") B = Přepínač (A = 1, "One", A = 2, "Two ", A = 3", "Tři", A = 4, "Čtyři", A = 5, "Pět") End Sub 

Krok 5: Pomocí funkce MSGBOX zobrazte hodnotu uloženou v B.

Kód:

 Dílčí vzorek () Dim A jako celé číslo Dim B jako řetězec A = InputBox ("Zadejte hodnotu", "hodnota by měla být mezi 1 až 5") B = Přepínač (A = 1, "One", A = 2, "Two ", A = 3, " tři ", A = 4, " čtyři ", A = 5, " pět ") MsgBox B End Sub 

Krok 6: Spusťte výše uvedený kód stisknutím klávesy F5 a požádejte nás o zadání celého čísla. Zadejte číslo 3 a stisknutím tlačítka Ok zobrazte výsledek.

Krok 7: Nyní si znovu spusťte kód a zadejte číslo 6 a podívejte se na výsledek, který dostaneme.

Dostáváme chybu runtime, protože v našem příkazu switch neexistuje výraz pro definování 6. Takže v takových scénářích potřebujeme nějaké preventivní zpracování chyb.

Krok 8: K překonání této chyby doby běhu deklarujte jinou proměnnou Var jako variantu.

Kód:

 Dílčí vzorek () Dim A jako celé číslo Dim B jako řetězec Dim var Var Variant A = InputBox ("Zadejte hodnotu", "hodnota by měla být mezi 1 až 5") B = Přepínač (A = 1, "One", A = 2, "dva", A = 3, "tři", A = 4, "čtyři", A = 5, "pět") MsgBox B End Sub 

Krok 9: Před naším příkazem switch použijte příkaz goto on goto, takže pokud kód najde chybu, ví, kam má jít.

Kód:

 Dílčí vzorek () Dim A jako celé číslo Dim B jako řetězec Dim var Var Variant A = InputBox („Zadejte hodnotu“, „hodnota by měla být mezi 1 až 5“) Při chybě GoTo var B = Přepínač (A = 1, „One ", A = 2, " dva ", A = 3, " tři ", A = 4, " čtyři ", A = 5, " pět ") MsgBox B End Sub 

Krok 10: Nyní definujte, co se stane, pokud kód zjistí chybu,

Kód:

 Dílčí vzorek () Dim A jako celé číslo Dim B jako řetězec Dim var Var Variant A = InputBox („Zadejte hodnotu“, „hodnota by měla být mezi 1 až 5“) Při chybě GoTo var B = Přepínač (A = 1, „One ", A = 2, " Dva ", A = 3, " Tři ", A = 4, " Čtyři ", A = 5, " Pět ") MsgBox B var: MsgBox" Zadali jste neplatné číslo "Pokračovat Další konec Sub 

Krok 11: Nyní spusťte kód znovu stisknutím klávesy F5 nebo kliknutím na tlačítko Přehrát a zadejte hodnotu 6 a poté stisknutím tlačítka Ok zobrazíte konečný výsledek v případě, že příkaz switch zjistí chybu.

Přepínač VBA - Příklad č. 2

V tomto příkladu mám v listu 1 data, která obsahují název některých filmů a jejich dobu trvání v minutách. Podle délky, kterou chci definovat, je film krátký nebo super dlouhý. Podívejte se na níže uvedená data.

Chcete-li použít příkaz Switch v aplikaci Excel VBA, postupujte takto:

Krok 1: Začněme ve stejném modulu a začneme definováním dalšího podprogramu následujícím způsobem.

 Dílčí vzorek1 () Koncový díl 

Krok 2: Prohlásit dvě proměnné A a B, jednu jako celé číslo jako řetězec,

 Dílčí vzorek1 () Dim A jako celé číslo Dim B jako řetězec End Sub 

Krok 3: Nyní v proměnné A uložme hodnotu délky filmu pro některý z filmů.

 Dílčí vzorek1 () Dim A jako celé číslo Dim B jako řetězec A = rozsah ("A3"). Offset (0, 1). 

Krok 4: Nyní v proměnné B použijeme příkaz VBA switch k definování toho, jaký bude scénář pro každou délku filmu.

 Dílčí vzorek1 () Dim A jako celé číslo Dim B jako řetězec A = rozsah ("A3"). Offset (0, 1). Hodnota B = přepínač (A <= 70, "příliš krátký", A <= 100, "krátký" ", A <= 120, " Long ", A <= 150, " Too Long ") End Sub 

Krok 5: Co když je hodnota větší než 180, měli bychom zde mít jiný obslužný program chyb nebo můžeme jednoduše napsat jiný výraz jako True, Value. Protože všechny ostatní hodnoty budou vráceny jako falešný kód, provede tento výraz.

 Dílčí vzorek1 () Dim A jako celé číslo Dim B jako řetězec A = rozsah ("A3"). Offset (0, 1). Hodnota B = přepínač (A <= 70, "příliš krátký", A <= 100, "krátký" ", A <= 120, " Long ", A <= 150, " too Long ", True, " Boring ") End Sub 

Krok 6: Zobrazte hodnotu B pomocí funkce msgbox.

 Dílčí vzorek1 () Dim A jako celé číslo Dim B jako řetězec A = rozsah ("A3"). Offset (0, 1). Hodnota B = přepínač (A <= 70, "příliš krátký", A <= 100, "krátký" ", A <= 120, " Long ", A <= 150, " too Long ", True, " Boring ") MsgBox B End Sub 

Krok 7: Spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Přehrát a podívejte se na výstup.

Buňka A3 má film 2, jehož délka byla 100, takže výstup byl krátký.

Přepínač VBA - Příklad č. 3

Nechte použít příkaz switch, aby vytvořil uživatelem definovanou funkci pro výše uvedený příklad, abychom jej mohli kdykoli použít v našem pracovním listu.

Chcete-li použít příkaz Switch v aplikaci Excel VBA, postupujte takto:

Krok 1: Ve stejném modulu deklarujte funkci nazvanou jako délka filmu.

 Funkce FilmLength (Leng As Integer) jako funkce String End 

Krok 2: Nyní pomocí příkazu VBA Switch definujte parametry na základě délky následovně:

 Funkce FilmLength (Leng As Integer) As String FilmLength = Switch (Leng <= 70, "Too Short", Leng <= 100, "Short", Leng <= 120, "Long", Leng <= 150, "too Long", True, "Nudné") End Function 

Krok 3: Nyní pojďme do listu, kde jsme měli naše data, zadejte = FilmLength (

Krok 4: Zde můžeme vidět, jak naše funkce poskytuje argument jako hodnoty v buňce B2.

Krok 5: Po použití vzorce stiskněte enter.

Krok 6: Nyní přetáhněte funkci do buňky C10 a podívejte se na výsledek.

Co si pamatovat

  • Funkce Switch vyhodnotí výraz v něm. Pokud je první výraz vyhodnocen jako pravdivý, nevyhodnocuje ostatní výrazy.
  • Pokud žádný z výrazů není pravdivý, vrátí chybu doby běhu.
  • V příkazu switch nebo výrazu musíme mít popisovač chyb, takže pokud je každý výraz vrácen nepravdivý, nenastane chyba runtime.
  • Přepínač je podobný příkazu select case.

Doporučené články

Toto je průvodce přepínačem VBA. Zde diskutujte o tom, jak používat příkaz switch v Excelu VBA, spolu s několika praktickými příklady a šablonou Excel ke stažení. Můžete si také prohlédnout naše další doporučené články -

  1. Použití funkce VBA InStr
  2. Excel SWITCH Funkce
  3. Náhodné číslo VBA
  4. CONCATENATE Funkce v Excelu