Příkaz k výběru aplikace Excel VBA - vysvětlen s příklady

Excel VBA má konstrukci IF Then Else, kterou můžete použít k analýze více podmínek a spuštění kódů na základě těchto podmínek.

Další podobný konstrukt, který vám umožňuje zkontrolovat více podmínek, je VYBERTE PŘÍPAD prohlášení.

Vybrat případ je užitečné, pokud máte tři nebo více podmínek, které chcete zkontrolovat. Můžete to také použít se dvěma podmínkami (ale cítím, že If Then Else je v těchto případech jednodušší použít).

Jednoduchý příklad, kde je příkaz Select Case užitečný, když chcete získat známku studenta na základě známek, které získal, (popsáno jako příklad dále v tomto tutoriálu).

Poznámka: Všechny ukázkové kódy obsažené v tomto kurzu mají být umístěny v modulu ve VBA.

Vyberte Syntaxe případu

Níže je syntaxe Select Case v Excel VBA:

Vyberte Test Case_Expression Case Value_1 Blok kódu při Test_Expression = Value_1 Case Value_2 Blok kódu při Test_Expression = Value_2 Case Value_3 Blok kódu při Test_Expression = Value_3 Case Jiný kódový blok, pokud nejsou splněny žádné podmínky případu End Select
  • Test_Expression: Toto je výraz, jehož hodnotu analyzujeme pomocí různých případů (vysvětleno lépe pomocí níže uvedených příkladů).
  • Podmínka_1, Podmínka_2, …: Toto jsou podmínky, za kterých se testuje textový výraz. Pokud splňuje podmínku, provede se blok kódu pro danou podmínku.

Pro každý příkaz Select Case, který použijete, musíte použít příkaz End Select.

Poznámka: Jakmile je splněna podmínka, VBA opustí konstrukci výběrového případu. Pokud tedy máte pět podmínek a druhá podmínka je splněna, VBA ukončí Select Case - a ostatní podmínky nebudou testovány.

Vyberte Příklady případů

Nyní, abychom lépe porozuměli tomu, jak používat příkaz Select Case ve VBA, pojďme si projít několik příkladů.

Všimněte si, že většina příkladů v tomto kurzu má vysvětlit koncept. To může, ale nemusí být nejlepší způsob, jak dokončit práci.

Začněme jednoduchým příkladem, jak nám Select Case umožňuje kontrolovat podmínky.

Příklad 1 - Zkontrolujte čísla

V níže uvedeném příkladu kód požádá uživatele o zadání libovolného čísla mezi 1 a 5 a poté zobrazí okno se zprávou s číslem, které uživatel zadal.

Dílčí kontrolní číslo () Dim UserInput As Integer UserInput = InputBox ("Zadejte číslo mezi 1 a 5") Vyberte Case UserInput Případ 1 MsgBox "Zadali jste 1" Případ 2 MsgBox "Zadali jste 2" Případ 3 MsgBox "Zadali jste 3" Případ 4 MsgBox "Zadali jste 4" Případ 5 MsgBox "Zadali jste 5" Konec Vybrat Konec Sub

Všimněte si, že tento kód není ani zdaleka užitečný a není ani spolehlivý. Pokud například zadáte 6 nebo jakýkoli řetězec, nic by to neudělalo. Ale jak jsem zmínil, mým záměrem je ukázat, jak Select Case funguje.

Příklad 2 - Použití Select Case s podmínkou IS

Pro kontrolu hodnoty čísel můžete použít podmínku IS u konstrukce Select Case.

Níže uvedený kód kontroluje, zda je vstupní číslo větší než 100 nebo ne.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Please enter a number") Select Case UserInput Case Is = 100 MsgBox "Zadali jste číslo větší než (nebo rovno) 100" End Select End End Sub

Příklad 3 - Použití Case Else k zachycení všech

Ve výše uvedeném příkladu jsem použil dvě podmínky (méně než 100 nebo více než nebo rovno 100).

Místo druhého pouzdra s podmínkou můžete také použít Case Else.

Case Else funguje jako catch-all a vše, co nespadá do žádného z předchozích případů, je ošetřeno Case Else.

Níže je ukázkový kód, kde jsem použil Case Else:

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Please enter a number") Select Case UserInput Case Is <100 MsgBox "Zadali jste číslo menší než 100" Case Else MsgBox "Zadali jste číslo větší než (nebo rovno ) 100 "End Select End Sub

Příklad 4 - Použití rozsahu čísel

V Select Case můžete také zkontrolovat rozsah čísel.

Níže uvedený kód požádá o zadání a zobrazí okno se zprávou na základě hodnoty.

Dílčí kontrolní číslo () Dim UserInput jako celé číslo UserInput = InputBox ("Zadejte prosím číslo mezi 1 a 100") Vyberte případ UserInput Případ 1 až 25 MsgBox "Zadali jste číslo menší než 25" Případ 26 až 50 MsgBox "Zadali jste číslo mezi 26 a 50 "Případ 51 až 75 MsgBox" Zadali jste číslo mezi 51 a 75 "Případ 75 až 100 MsgBox" Zadali jste číslo více než 75 "Konec Vybrat Konec Sub

Příklad 5 - Získejte známku na základě známek

Dosud jsme viděli základní příklady (které v praktickém světě opravdu nejsou užitečné).

Zde je příklad, který je bližší příkladu z reálného světa, kde můžete použít Select Case v Excelu VBA.

Následující kód vám poskytne známku, kterou student získá na základě známek ve zkoušce.

Dílčí stupeň () Dim StudentMarks jako celé číslo Dim FinalGrade jako řetězec StudentMarks = InputBox ("Enter Marks") Vybrat případ StudentMarks Case Is <33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 to 60 FinalGrade = "D "Případ 60 až 70 FinalGrade =" C "Případ 70 až 90 FinalGrade =" B "Případ 90 až 100 FinalGrade =" A "konec Vyberte MsgBox" Stupeň je "& FinalGrade End Sub

Výše uvedený kód požádá uživatele o známky a na jeho základě zobrazí okno se zprávou s konečným hodnocením.

Ve výše uvedeném kódu jsem specifikoval všechny podmínky - pro známky 0 - 100.

Dalším způsobem, jak použít Select Case, je použít Case Else na konci. To je užitečné, když jste zaúčtovali všechny podmínky a poté určíte, co dělat, když není splněna žádná z podmínek.

Níže uvedený kód je variací kódu Grade s menší změnou. Nakonec má příkaz Case else, který bude proveden, pokud nejsou splněny žádné z výše uvedených podmínek.

Sub CheckOddEven () Dim StudentMarks As Integer Dim FinalGrade as String StudentMarks = InputBox ("Enter Marks") Select Case StudentMarks Case Is <33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 to 60 FinalGrade = "D "Case 60 to 70 FinalGrade =" C "Case 70 to 90 FinalGrade =" B "Case Else FinalGrade =" A "End Select MsgBox" The Grade is "& FinalGrade End Sub

Příklad 6 - Vytvoření vlastní funkce (UDF) pomocí Select Case

Ve výše uvedeném příkladu kód požádal uživatele o zadání značek.

Můžete také vytvořit vlastní funkci (funkce definovaná uživatelem), kterou lze použít stejně jako všechny běžné funkce listu a která vrátí hodnocení studentů.

Níže je kód, který vytvoří vlastní vzorec:

Funkce GetGrade (StudentMarks jako celé číslo) Dim FinalGrade jako řetězec Vybrat případ CaseMag Case je <33 FinalGrade = "F" případ 33 až 50 FinalGrade = "E" případ 51 až 60 FinalGrade = "D" případ 60 až 70 FinalGrade = "C" Případ 70 až 90 FinalGrade = "B" Případ Jiný FinalGrade = "A" End Vyberte GetGrade = FinalGrade Koncová funkce

Jakmile budete mít tento kód v modulu, můžete použít funkci GetGrade v listu, jak je uvedeno níže.

Příklad 7 - Zkontrolujte ODD / EVEN pomocí Select Case

Níže je ukázkový kód, kde kontroluji, zda je číslo v buňce A1 liché nebo sudé.

Sub CheckOddEven () CheckValue = Range ("A1"). Hodnota Select Case (CheckValue Mod 2) = 0 Case True MsgBox "Číslo je sudé" Case False MsgBox "Číslo je liché" End Select End Sub

Příklad 8 - Kontrola dne v týdnu/víkendu (více podmínek)

Pomocí Select Case můžete také zkontrolovat více hodnot ve stejném případě.

Níže uvedený kód například používá aktuální datum k zobrazení, zda je dnes všední den nebo víkend (kde víkendové dny jsou sobota a neděle)

Sub CheckWeekday () Vyberte případ ve všední den (nyní) Případ 1, 7 MsgBox „Dnes je víkend“ Případ Jiný MsgBox „Dnes je všední den“ Konec Vyberte Konec Sub

Ve výše uvedeném kódu kontrolujeme dvě podmínky (1 a 7) ve stejném případě.

Poznámka: Funkce všední den vrací 1 pro neděli a 7 pro sobotu.

Příklad 9 - Vnořené výběry případů

Můžete také vložit jeden příkaz Select Case do jiného.

Níže je kód, který kontroluje, zda je den ve všední den nebo víkend, a pokud je víkend, pak zobrazí, zda je sobota nebo neděle.

Sub CheckWeekday () Select Case Weekday (Now) Case 1, 7 Select Case Weekday (Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Sub

Ve výše uvedeném kódu jsem vnořil případ výběru, abych zkontroloval, zda je víkend sobota nebo neděle.

Poznámka: Výše ​​uvedený příklad má vysvětlit koncept. Toto není nejlepší ani nejpraktičtější způsob, jak zjistit všední den/víkend.

Příklad 10 - Kontrola textového řetězce pomocí případu výběru

Pomocí Select Case můžete zkontrolovat konkrétní řetězce a poté na jejich základě spustit kód.

V níže uvedeném ukázkovém kódu uživatele požádá, aby zadal název svého oddělení, a zobrazí jméno osoby, se kterou by se měl spojit při registraci.

Sub OnboardConnect () Dim Department as String Department = InputBox ("Enter Your Department Name") Select Case Department Case "Marketing" MsgBox "Please connect with Bob Raines for Onboarding" Case "Finance" MsgBox "Please connect with Patricia Cruz for Onboarding" Případ "HR" MsgBox "Prosím spojte se s Oliverem Randem pro Onboarding" Case "Admin" MsgBox "Prosím spojte se s Helen Hume pro Onboarding" Case Else MsgBox "Prosím spojte se s Tony Randallem pro Onboarding" End Select End Sub

Doufám, že všechny výše uvedené příklady byly užitečné pro pochopení konceptu a aplikace Select Case v aplikaci Excel VBA.

Také by se vám mohly líbit následující výukové programy VBA:

  • Smyčky Excel VBA - Pro další, Do while, Do Do, pro každou.
  • Pro další smyčku v aplikaci Excel VBA.
  • Jak zaznamenat makro v aplikaci Excel.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave