Skříň VBA - Jak používat prohlášení o přepnutí případu v aplikaci Excel VBA?

Obsah:

Anonim

Pouzdro Excel VBA Switch

V případě VBA Switch Case, když potřebujeme logicky zkontrolovat nebo analyzovat podmínku a provést různé řádky kódů na základě stejného, ​​použijeme podmíněný příkaz IF-Else. Podobně existuje ještě jeden příkaz Switch Case, který je všeobecně znám jako příkaz Select Case, který může zkontrolovat nebo analyzovat více logických podmínek a na základě nich provést kódové řádky. Pokud máte ke kontrole tři nebo více logických podmínek, doporučujeme vám místo obvyklého příkazu IF-Else použít příkaz Select Case nebo Switch Case. Protože v takových případech činí kód VBA rychlejší a srozumitelnější místo vnořených příkazů IF-Else.

Switch Case / Select Case

Switch Case nebo Select Case ve VBA pracuje na podobných řádcích jako příkazy IF-Else. Zkontroluje více logických / podmíněných výrazů podle různých hodnot (případů). Jakmile některý z případů vyhovuje podmínce (stane se pro danou podmínku pravdou), systém provede tento případ a ostatní případy se ignorují, aby se provedly. V případě, že pro danou podmínku platí dva případy, bude s právem přednosti proveden pouze první .

Syntaxe pro případ Case / Select Case je následující:

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, u kterého jsme chtěli zkontrolovat nebo analyzovat pomocí různých hodnot velikosti písmen.

value_1, value_2, value_3, … jsou logické podmínky, které je třeba zkontrolovat pro daný výraz.

Jak používat prohlášení o přepnutí případu v aplikaci Excel VBA?

Naučíme se, jak používat příkaz Switch Case v Excelu pomocí kódu VBA.

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

VBA Switch Case - Příklad č. 1

Prověříme, zda je dané číslo menší než 100 nebo více než 100. Za tímto účelem postupujte podle následujících kroků:

Krok 1: Vložte nový modul do editoru jazyka Visual Basic (VBE). Klikněte na kartu Vložit > vyberte modul.

Krok 2: Definujte nový podprogram v rámci vloženého modulu, který pojme vaše makro.

Kód:

 Sub switch_case_example1 () End Sub 

Krok 3: Definujte novou proměnnou s názvem usrInpt, která pojme uživatelskou hodnotu. Pomocí funkce VBA InputBox vytvořte vstupní pole, které převezme uživatelské hodnoty prostřednictvím proměnné usrInpt .

Kód:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadejte prosím svou hodnotu") End Sub 

Krok 4: Použijte příkaz Select Case a zadejte hodnotu poskytovanou uživatelem prostřednictvím proměnné usrInpt . Toto je výraz, který musíme zkontrolovat s logickými podmínkami.

Kód:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadejte prosím svou hodnotu") Vyberte Case UsrInpt End Sub 

Krok 5: Zadejte první logický test, který má být zkontrolován, do příkazu Case takto.

Kód:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadejte prosím svou hodnotu") Vyberte případ Case usrInpt Case is <100 End Sub 

Krok 6: Pomocí funkce MsgBox přidejte výstupní zprávu, pokud je Case <100 pravdivá.

Kód:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadejte prosím svou hodnotu") Vyberte případ Pouzdro usrInpt je <100 MsgBox "Zadané číslo je menší než 100" End Sub 


Krok 7: Nyní musíme poskytnout spustitelný příkaz, když je hodnota pro usrInpt větší než 100. K dosažení tohoto cíle přidejte případ a MsgBox.

Kód:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadejte prosím svou hodnotu") Vyberte případ Případ usrInpt je 100 MsgBox "Zadané číslo je větší než 100" End Sub 

Krok 8: Co když je hodnota poskytnutá uživatelem přesně 100? Nemáme k tomu žádný případ. Přidejme ten, který dává uživateli zprávu, že zadaná hodnota je 100.

Kód:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadejte prosím svou hodnotu") Vyberte případ UsrInpt Case is 100 MsgBox "Zadané číslo je větší než 100" Případ Is = 100 MsgBox "Zadané číslo je 100" End Sub 

Krok 9: Musíme ukončit příkaz Select Case. Vytvořenou smyčku ukončíte tlačítkem End Select .

Kód:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Zadejte prosím svou hodnotu") Vyberte případ UsrInpt Case is 100 MsgBox "Zadané číslo je větší než 100" Case Is = 100 MsgBox "Zadané číslo je 100" End Select End Sub 

Krok 10: Nyní spusťte tento kód stisknutím tlačítka Spustit nebo F5. Objeví se nové vyskakovací okno s požadavkem na kontrolu hodnoty. Zadám hodnotu jako 110 a stiskem tlačítka OK ve vstupním poli. Protože zadané číslo je větší než 100, jakmile kliknu na OK, objeví se na obrazovce nová zpráva s nápisem „Zadané číslo je větší než 100“.

VBA Switch Case - Příklad # 2

Předpokládejme, že chceme zachytit známku studentů na základě jejich známek. Podívejte se na níže uvedené kroky, jak toho dosáhnout.

Krok 1: Definujte novou dílčí proceduru s názvem switch_case_example2 .

Kód:

 Sub switch_case_example2 () End Sub 

Krok 2: Definujte dvě nové proměnné - značky jako celé číslo a stupně jako řetězec pomocí příkazu Dim v vytvořené dílčí proceduře.

Kód:

 Sub switch_case_example2 () Dim značky jako Integer Dim stupně jako String End Sub 

Krok 3: Použijte funkci VBA InputBox, pomocí níž může uživatel zadat hodnotu pro značky proměnných.

Kód:

 Sub switch_case_example2 () Dim značky As Integer Dim stupně As String značky = InputBox ("Zadejte prosím značky") End Sub 

Krok 4: Použijte příkaz Select Case a zadejte proměnné jako výraz, který chcete zkontrolovat.

Kód:

 Sub switch_case_example2 () Dim značky jako celé číslo Dim stupně As String značky = InputBox ("Zadejte značky") Vyberte značky Case End Sub 

Vzhledem k tomu, že chceme studentům přiřadit známky na základě známek, které zadali, musíme je nejdříve definovat.

Krok 5: Pomocí příkazu case zkontrolujte, zda jsou značky menší než 35. Pokud ano, přiřaďte proměnným známkám hodnotu „F“.

Kód:

 Sub switch_case_example2 () Tmavé značky jako celočíselné dimové stupně Jako Stringové značky = InputBox ("Zadejte prosím značky") Vyberte značky Case Case Case <35 stupňů = "F" End Sub 

Krok 6: Pokud jsou značky mezi 35 a 45, přiřaďte hodnotu jako „D“ různým známkám.

Kód:

 Sub switch_case_example2 () Dim značky As Integer Dim stupně As String značky = InputBox ("Zadejte značky") Vyberte značky Case Případ Is <35 stupňů = "F" Případ 35 až 45 stupňů = "D" End Sub 

Krok 7: Pokud jsou zadané značky mezi 46 a 55, hodnota „C“ by měla být přiřazena k různým známkám.

Kód:

 Sub switch_case_example2 () Tmavé značky jako celočíselné dimové stupně Jako Stringové značky = InputBox ("Zadejte prosím značky") Vyberte Značky Case Case Is <35 grade = "F" Case 35 To 45 grade = "D" Case 46 To 55 grade = "C" End Sub 

Krok 8: Pokud jsou značky v rozmezí 56 až 65, měla by být hodnota přiřazená proměnným známkám „B“.

Kód:

 Sub switch_case_example2 () Dim značky As Integer Dim stupně As String známky = InputBox ("Zadejte prosím značky") Vyberte značky Case Případ Je <35 stupňů = "F" Případ 35 až 45 stupňů = "D" Případ 46 až 55 stupňů = "C" Případ 56 až 65 stupňů = "B" Konec Sub 

Krok 9: U známek mezi 66 a 75 by známka měla být „A“.

Kód:

 Sub switch_case_example2 () Dim značky As Integer Dim stupně As String známky = InputBox ("Zadejte prosím značky") Vyberte značky Case Případ Je <35 stupňů = "F" Případ 35 až 45 stupňů = "D" Případ 46 až 55 stupňů = "C" Případ 56 až 65 stupňů = "B" Případ 66 až 75 stupňů = "A" Konec Sub 

Krok 10: Pokud jsou zadané značky větší než 75, proměnné stupně by měla být přiřazena hodnota jako „A +“

Kód:

 Sub switch_case_example2 () Dim značky As Integer Dim stupně As String značky = InputBox ("Zadejte prosím značky") Vyberte značky Case Případ Je 75 stupňů = "A +" End Sub 

Krok 11: Použít konec Vyberte uzavření smyčky Select Case.

Kód:

 Sub switch_case_example2 () Tmavé značky jako celočíselné Dim třídy Jak Stringové značky = InputBox ("Zadejte prosím značky") Vyberte Značky Case Případ Je 75 stupňů = "A +" Konec Vyberte Konec Sub 

Krok 12: Nyní musíme zkontrolovat, jaká je známka spojená se známkami, které student zadal. Aby toho bylo dosaženo, použijte funkci MsgBox takovým způsobem, že označuje dosaženou známku uvnitř schránky zpráv.

Kód:

 Sub switch_case_example2 () Dim značky As Integer Dim stupně As String značky = InputBox ("Zadejte značky") Vyberte značky Case Případ Je 75 stupňů = "A +" End Select MsgBox "Dosažený stupeň je:" & známky End Sub 

Krok 13: Spusťte tento kód stisknutím klávesy F5 nebo Run a uvidíte vstupní pole VBA s požadavkem na hodnotu značky. Zadám značky jako 72 a stiskem tlačítka OK přítomného ve vstupním poli. Jakmile ve vstupním poli stisknu tlačítko OK, zobrazí se okno s informacemi o známkách přiřazených k zadaným značkám.

Takto můžeme použít příkaz Switch / Select Case uvnitř VBA.

Co si pamatovat

  • Případ Switch je vlastně synonymem příkazu Select Case ve VBA. Bylo to nazváno, protože pomocí tohoto prohlášení můžeme přepínat mezi různými výstupy současně.
  • Toto tvrzení lze použít jako alternativu ke smyčce IF-Else, kdykoli máme tři nebo více podmínek ke kontrole.
  • Je to v pořádku, pokud v příkazu Select Case nepoužíváte případ ELSE. V takovém případě se však musíte ujistit, že alespoň jedna podmínka platí v celé smyčce.

Doporučené články

Toto je průvodce VBA Switch Case. Zde diskutujeme, jak používat prohlášení o přepnutí případu v aplikaci Excel VBA, spolu s praktickými příklady a šablonou Excel ke stažení. Můžete si také prohlédnout naše další doporučené články -

  1. Kolekce VBA (příklady)
  2. VBA IF Prohlášení | Šablony Excelu
  3. Jak používat funkci řazení Excel VBA?
  4. VBA while Loop (příklady se šablonou Excel)
  5. VBA Environ