Príkaz k prípadu Excel VBA - vysvetlené s príkladmi

Excel VBA má konštrukciu IF Then Else, ktorú môžete použiť na analýzu viacerých podmienok a spustenie kódov na základe týchto podmienok.

Ďalším podobným konštruktom, ktorý vám umožňuje skontrolovať viac podmienok, je VYBERTE PRÍPAD vyhlásenie.

Select Case je užitočný, ak máte tri alebo viac podmienok, ktoré chcete skontrolovať. Môžete to tiež použiť s dvoma podmienkami (ale v týchto prípadoch sa mi zdá jednoduchšie použiť aplikáciu If Then Else).

Jednoduchý príklad, kde je vyhlásenie Select Case užitočné, keď chcete získať známku študenta na základe dosiahnutých známok (popísané nižšie v tomto návode).

Poznámka: Všetky ukážkové kódy zahrnuté v tomto návode sú určené na umiestnenie v module vo VBA.

Vyberte položku Syntax prípadu

Nasleduje syntax vybraného prípadu v programe Excel VBA:

Vyberte Test prípadu_výraz Prípad Hodnota_1 Blok kódu pri Test_Výraz = Hodnota_1 Prípad Hodnota_2 Blok kódu pri Test_Výraz = Hodnota_2 Prípad Hodnota_3 Blok kódu, keď Test_Výraz = Hodnota_3 Prípad Iný kódový blok, ak nie sú splnené žiadne podmienky prípadu Koniec Vybrať
  • Test_Expression: Toto je výraz, ktorého hodnotu analyzujeme pomocou rôznych prípadov (lepšie vysvetlené pomocou nižšie uvedených príkladov).
  • Podmienka_1, Podmienka_2, …: Toto sú podmienky, za ktorých sa testuje textový výraz. Ak spĺňa podmienku, vykoná sa blok kódu pre danú podmienku.

Na každý príkaz Select Case, ktorý použijete, musíte použiť príkaz End Select.

Poznámka: Hneď ako je splnená podmienka, VBA opustí konštrukciu vybraného prípadu. Ak teda máte päť podmienok a druhá podmienka je splnená, VBA ukončí Select Case - a ostatné podmienky nebudú testované.

Vyberte Príklady prípadov

Teraz, aby sme lepšie porozumeli tomu, ako používať príkaz Select Case vo VBA, pozrime sa na niekoľko príkladov.

Všimnite si toho, že väčšina príkladov v tomto návode má tento koncept vysvetliť. To môže, ale nemusí byť najlepší spôsob, ako vykonať prácu.

Začnime jednoduchým príkladom, ako nám Select Case umožňuje skontrolovať podmienky.

Príklad 1 - Skontrolujte čísla

V nižšie uvedenom príklade kód požiada používateľa, aby zadal ľubovoľné číslo od 1 do 5, a potom zobrazí okno so správou s číslom, ktoré používateľ zadal.

Vedľajšie kontrolné číslo () Dim UserInput As Integer UserInput = InputBox ("Zadajte číslo medzi 1 a 5") Vyberte prípad UserInput Prípad 1 MsgBox "Zadali ste 1" Prípad 2 MsgBox "Zadali ste 2" Prípad 3 MsgBox "Zadali ste 3" Prípad 4 MsgBox "Zadali ste 4" Prípad 5 MsgBox "Zadali ste 5" Koniec Vybrať Koniec Sub

Všimnite si toho, že tento kód nie je ani zďaleka užitočný a nie je ani spoľahlivý. Ak napríklad zadáte 6 alebo ľubovoľný reťazec, nič by to neurobilo. Ale ako som už spomenul, mojím cieľom je predviesť, ako Select Case funguje.

Príklad 2 - Použitie Select Case s podmienkou IS

Na kontrolu hodnoty čísel môžete použiť podmienku IS s konštrukciou Select Case.

Nasledujúci kód kontroluje, či je zadané číslo väčšie ako 100 alebo nie.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Please enter a number") Select Case UserInput Case Is = 100 MsgBox "Zadali ste číslo viac ako (alebo rovné) 100" End Vybrať End Sub

Príklad 3 - Použitie Case Else na zachytenie všetkých

Vo vyššie uvedenom príklade som použil dve podmienky (menej ako 100 alebo viac ako alebo rovných 100).

Namiesto druhého puzdra s podmienkou môžete použiť aj Case Else.

Case Else funguje ako záchytný bod a všetko, čo nespadá do žiadneho z predchádzajúcich prípadov, rieši Case Else.

Nasleduje príklad kódu, kde som použil Case Else:

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Please enter a number") Select Case UserInput Case Is <100 MsgBox "Zadali ste číslo menšie ako 100" Case Else MsgBox "Zadali ste číslo viac ako (alebo rovné ) 100 "End Select End Sub

Príklad 4 - Použitie rozsahu čísel

V prípade Select Case môžete tiež skontrolovať rozsah čísel.

Nasledujúci kód požiada o zadanie a zobrazí hlásenie podľa hodnoty.

Vedľajšie kontrolné číslo () Dim UserInput ako celé číslo UserInput = InputBox ("Zadajte číslo medzi 1 a 100") Vyberte prípad UserInput Prípad 1 až 25 MsgBox "Zadali ste číslo menšie ako 25" Prípad 26 až 50 MsgBox "Zadali ste číslo medzi 26 a 50 "Prípad 51 až 75 MsgBox" Zadali ste číslo medzi 51 a 75 "Prípad 75 až 100 MsgBox" Zadali ste číslo viac ako 75 "Koniec Vybrať Koniec Sub

Príklad 5 - Získajte známku na základe dosiahnutých známok

Doteraz sme videli základné príklady (ktoré v praktickom svete skutočne nie sú užitočné).

Tu je príklad, ktorý je bližší príkladu zo skutočného sveta, v ktorom môžete použiť prípad pre prípad v programe Excel VBA.

Nasledujúci kód vám poskytne známku, ktorú študent získa na základe známok na skúške.

Podštandard () Dim StudentMarks ako celé číslo Dim FinalGrade ako reťazec StudentMarks = InputBox („Zadajte značky“) Vyberte prípad CaseMarkMark Prípad je <33 FinalGrade = "F" Prípad 33 až 50 FinalGrade = "E" Prípad 51 až 60 FinalGrade = "D „Prípad 60 až 70 FinalGrade =„ C “Prípad 70 až 90 FinalGrade =„ B “Prípad 90 až 100 FinalGrade =„ A “koniec Vyberte MsgBox„ Stupeň je “a koniec koncového stupňa

Vyššie uvedený kód požiada používateľa o známky a na základe neho zobrazí okno so správou s konečným hodnotením.

Vo vyššie uvedenom kóde som uviedol všetky podmienky - pre známky 0 - 100.

Ďalším spôsobom použitia Select Case je použitie Case Else na konci. Je to užitočné, keď ste zaúčtovali všetky podmienky a potom špecifikovali, čo máte robiť, ak nie je splnená žiadna z týchto podmienok.

Nasledujúci kód je variáciou kódu známky s malou zmenou. Nakoniec má príkaz Case else, ktorý sa vykoná, ak nie sú splnené žiadne z vyššie uvedených podmienok.

Sub CheckOddEven () Dim StudentMarks ako celé číslo Dim FinalGrade ako reťazec StudentMarks = InputBox ("Enter Marks") Vyberte prípad CaseMag Case je <33 FinalGrade = "F" prípad 33 až 50 FinalGrade = "E" prípad 51 až 60 FinalGrade = "D "Prípad 60 až 70 FinalGrade =" C "Prípad 70 až 90 FinalGrade =" B "Prípad Else FinalGrade =" A "koniec Vyberte MsgBox" Stupeň je "& FinalGrade Koniec Sub

Príklad 6 - Vytvorenie vlastnej funkcie (UDF) pomocou príkazu Select Case

Vo vyššie uvedenom príklade kód požiadal používateľa o zadanie značiek.

Môžete tiež vytvoriť vlastnú funkciu (funkciu definovanú používateľom), ktorú je možné použiť rovnako ako všetky bežné funkcie pracovného hárka a ktorá vráti známku študentov.

Nasleduje kód, ktorý vytvorí vlastný vzorec:

Funkcia GetGrade (StudentMarks ako celé číslo) Dim FinalGrade ako reťazec Vyberte prípad CaseMarkM Case je <33 FinalGrade = "F" prípad 33 až 50 FinalGrade = "E" prípad 51 až 60 FinalGrade = "D" prípad 60 až 70 FinalGrade = "C" Prípad 70 až 90 FinalGrade = „B“ Prípad inak FinalGrade = „A“ koniec Vyberte GetGrade = FinalGrade Koniec Funkcia

Akonáhle budete mať tento kód v module, môžete použiť funkciu GetGrade v pracovnom hárku, ako je to znázornené nižšie.

Príklad 7 - Zaškrtnite ODD / EVEN pomocou Select Case

Nasleduje príklad kódu, kde kontrolujem, či je číslo v bunke A1 nepárne alebo párne.

Sub CheckOddEven () CheckValue = Range ("A1"). Hodnota Select Case (CheckValue Mod 2) = 0 Case True MsgBox "Číslo je párne" Case False MsgBox "Číslo je nepárne" End Select End Sub

Príklad 8 - Kontrola pracovného dňa/víkendu (viac podmienok)

Pomocou funkcie Vybrať prípad môžete tiež vyhľadať viacero hodnôt v rovnakom prípade.

Nasledujúci kód napríklad používa aktuálny dátum na zobrazenie, či je dnes pracovný deň alebo víkend (kde víkendové dni sú sobota a nedeľa)

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

Vo vyššie uvedenom kóde kontrolujeme dve podmienky (1 a 7) v rovnakom prípade.

Poznámka: Funkcia dňa v týždni vráti hodnotu 1 pre nedeľu a 7 pre sobotu.

Príklad 9 - Vnorené výpisy prípadov

Môžete tiež vnoriť jeden príkaz Select Case do druhého.

Nasleduje kód, ktorý kontroluje, či je deň v týždni alebo víkend, a ak je víkend, potom zobrazí, či je sobota alebo nedeľa.

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

Vo vyššie uvedenom kóde som vnoril Select Case, aby som skontroloval, či je víkend sobota alebo nedeľa.

Poznámka: Uvedený príklad vysvetľuje tento koncept. Toto nie je najlepší ani najpraktickejší spôsob, ako zistiť deň v týždni/víkend.

Príklad 10 - Kontrola textového reťazca pomocou vybraného písmena

Konkrétne reťazce môžete skontrolovať pomocou príkazu Select Case a potom na základe neho spustiť kód.

V nižšie uvedenom vzorovom kóde vyzve používateľa, aby zadal názov svojho oddelenia, a zobrazí meno osoby, s ktorou by sa mal spojiť pri vstupe na palubu.

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" Prípad "HR" MsgBox "Spojte sa prosím s Oliverom Random pre onboarding" Prípad "Admin" MsgBox "Pripojte sa prosím s Helen Humeovou pre onboarding" Case Else MsgBox "Pripojte sa prosím s Tony Randallom pre nástup" Koniec Vybrať Koniec Sub

Dúfame, že všetky vyššie uvedené príklady boli nápomocné pri pochopení konceptu a aplikácie Select Case v programe Excel VBA.

Tiež by sa vám mohli páčiť nasledujúce návody VBA:

  • Excel VBA slučky - pre ďalšie, robiť kým, robiť do, pre každého.
  • Pre ďalšiu slučku v programe Excel VBA.
  • Ako zaznamenať makro v programe Excel.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave