Excel VBA Select Case Statement – selitetty esimerkeillä

Excel VBA: lla on IF Sitten muu -rakenne, jonka avulla voit analysoida useita ehtoja ja suorittaa koodeja perustuu näihin ehtoihin.

Toinen samanlainen rakenne, jonka avulla voit tarkistaa useita ehtoja, on SELECT CASE -käsky.

Select Case on hyödyllinen, kun sinulla on vähintään kolme haluamaasi ehtoa. tarkistaa. Voit käyttää tätä myös kahdella ehdolla (mutta mielestäni jos silloin muuta on helpompi käyttää näissä tapauksissa).

Yksinkertainen esimerkki, jossa Select Case -lauseke on hyödyllinen, kun haluat saada arvosanan opiskelija pisteytettyjen pisteiden perusteella (käsitelty esimerkkinä myöhemmin tässä opetusohjelmassa).

Huomaa: Kaikki tässä opetusohjelmassa käsitellyt esimerkkikoodit on tarkoitettu sijoitettaviksi VBA: n moduuliin.

Tämä opetusohjelma kattaa:

Valitse tapaussyntaksi

Alla on Valitse tapauksen syntaksi Excelissä VBA:

Select Case Test_ExpressionCase Value_1Code Block when Test_Expression = Value_1Case Value_2Code Block when Test_Expression = Value_2Case Value_3Code Block when Test_Expression = Value_3Case ElseCode Block when none of the case conditions are metEnd Select
  • Test_Expression: Tämä on lauseke, jonka arvoa analysoimme käyttämällä erilaisia tapauksia (selitetään paremmin alla olevilla esimerkeillä).
  • Ehto_1, Ehto_2,…: Nämä ovat ehdot, joilla tekstilauseke testataan. Jos se täyttää ehdon, tietyn ehdon koodilohko suoritetaan.

Jokaisessa valitsemassasi Select Case -lausekkeessa on käytettävä End Select -käskyä.

Huomaa: Heti kun ehto täyttyy, VBA poistuu valitun tapausrakenteesta. Joten jos sinulla on viisi ehtoa ja toinen ehto täyttyy, VBA poistuu Select Case -kohdasta – eikä muita ehtoja testata.

Valitse esimerkkitapauksia

Nyt ymmärrämme paremmin, kuinka Select Case -lauseketta käytetään VBA: ssa, käymme läpi muutamia esimerkkejä.

Huomaa, että useimmat tämän opetusohjelman esimerkit on tarkoitettu käsitteen selittämiseen. Tämä voi olla paras tapa saada työ tehtyä.

Aloitetaan yksinkertaisesta esimerkistä siitä, miten Select Case antaa meille mahdollisuuden tarkistaa olosuhteet.

Esimerkki 1 – Tarkista numerot

Alla olevassa esimerkissä koodi pyytää käyttäjää syöttämään minkä tahansa numeron väliltä 1–5 ja näyttää sitten viestiruudun käyttäjän antamalla numerolla.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 5")Select Case UserInputCase 1MsgBox "You entered 1"Case 2MsgBox "You entered 2"Case 3MsgBox "You entered 3"Case 4MsgBox "You entered 4"Case 5MsgBox "You entered 5"End SelectEnd Sub

Huomaa, että tämä koodi on kaukana hyödyllisestä eikä edes huijaussuojattu. Esimerkiksi, jos kirjoitat 6 tai minkä tahansa merkkijonon, se ei tekisi mitään. Mutta kuten mainitsin, aikomuksenani on esitellä kuinka Select Case toimii.

Esimerkki 2 – Select Case -toiminnon käyttäminen IS-ehdon kanssa

Voit käyttää IS-ehtoa Select Case -rakenteen kanssa tarkistaa numeroiden arvon.

Alla oleva koodi tarkistaa, onko syötetty numero suurempi kuin 100.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case Is >= 100MsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub

Esimerkki 3 – Tapauksen muiden käyttäminen kaikkien saamiseksi

Yllä olevassa esimerkissä käytin kahta ehtoa (alle 100 tai suurempi tai yhtä suuri kuin 100).

Toisen tapauksen sijaan ehto, voit käyttää myös Case Elseä.

Case Else toimii kaiken kaikkiaan, ja Case Else käsittelee kaikkea, mikä ei kuulu mihinkään edelliseen tapaukseen.

Alla on esimerkkikoodi, jossa olen käyttänyt Case Elseä:

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case ElseMsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub

Esimerkki 4 – Numeroalueen käyttäminen

In Select Tapauksessa voit myös tarkistaa numeroalueet.

Alla oleva koodi pyytää syötettä ja näyttää viestiruudun arvon perusteella.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 100")Select Case UserInputCase 1 To 25MsgBox "You entered a number less than 25"Case 26 To 50MsgBox "You entered a number between 26 and 50"Case 51 To 75MsgBox "You entered a number between 51 and 75"Case 75 To 100MsgBox "You entered a number more than 75"End SelectEnd Sub

Esimerkki 5 – Hanki arvosana pisteytettyjen merkkien perusteella

Toistaiseksi olemme nähneet perusesimerkkejä (joista ei ole todellakaan hyötyä käytännön maailmassa).

Tässä on esimerkki, joka on lähempänä tosielämän esimerkkiä, jossa voit käyttää Select Case -sovellusta Excel VBA: ssa.

Seuraava koodi antaa sinulle arvosanan, jonka opiskelija saa tentin pisteet.

Yllä oleva koodi pyytää käyttäjältä pisteitä ja näyttää sen perusteella viestiruudun viimeisen arvosanan kanssa.

Yllä olevassa koodissa minulla on määritti kaikki ehdot – merkkeille 0 – 100.

Toinen tapa käyttää Select Case -ohjelmaa on käyttää Case Elseä lopussa. Tästä on hyötyä, kun olet ottanut huomioon kaikki ehdot ja määrittänyt sitten mitä tehdä, kun mikään ehdoista ei täyty.

Alla oleva koodi on muunnos Grade-koodista pienellä muutoksella. Loppujen lopuksi sillä on Case else -lauseke, joka suoritetaan, kun mikään yllä olevista ehdoista ei toteudu.

Esimerkki 6 – Mukautetun toiminnon (UDF) luominen Select Case -toiminnon avulla

Yllä olevassa esimerkissä koodi pyysi käyttäjää syöttämään merkinnät.

Voit myös luoda mukautetun toiminnon (käyttäjän määrittämä toiminto), jota voidaan käyttää aivan kuten kaikkia tavallisia laskentataulukko-toimintoja. opiskelijoiden arvosanaa.

Alla on koodi, joka luo mukautetun kaavan:

Function GetGrade(StudentMarks As Integer)Dim FinalGrade As StringSelect Case StudentMarksCase Is < 33FinalGrade = "F"Case 33 To 50FinalGrade = "E"Case 51 To 60FinalGrade = "D"Case 60 To 70FinalGrade = "C"Case 70 To 90FinalGrade = "B"Case ElseFinalGrade = "A"End SelectGetGrade = FinalGradeEnd Function

Kun tämä koodi on moduulissa, voit käyttää laskentataulukon funktiota GetGrade alla olevan kuvan mukaisesti.

Esimerkki 7 – Tarkista ODD / EVEN valintakoodilla

Alla on esimerkkikoodi, tarkista, onko solun A1 numero pariton vai parillinen.

Esimerkki 8 – viikonpäivän / viikonlopun tarkistaminen (useita ehtoja)

Voit myös valita Select Case -toiminnon avulla, jos haluat tarkistaa useita arvoja sama tapaus.

Esimerkiksi alla olevassa koodissa käytetään nykyistä päivämäärää osoittamaan, onko tänään viikonpäivä vai viikonloppu (jossa viikonloppupäivät ovat lauantai ja sunnuntai)

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

Yllä olevassa koodissa tarkistamme kaksi ehtoa (1 ja 7) samassa tapauksessa.

Huomaa: Viikonpäivä-funktio palauttaa 1 sunnuntaille ja 7 lauantaina.

Esimerkki 9 – Sisäkkäiset Select Case -lausekkeet

Voit myös sijoittaa yhden Select Case -lausekkeen muihin.

Alla on koodi, joka tarkistaa, onko päivä viikonpäivä vai ei. viikonloppu, ja jos se on viikonloppu, se näyttää onko lauantai vai sunnuntai.

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 SelectCase ElseMsgBox "Today is a Weekday"End SelectEnd Sub

Yllä olevassa koodissa Olen sijoittanut Select Casein tarkistaaksesi, onko viikonloppu lauantai vai sunnuntai.

Huomaa: Yllä oleva esimerkki on selittää käsite. Tämä ei ole paras tai käytännöllisin tapa selvittää arkipäivä / viikonloppu.

Esimerkki 10 – Tekstimerkkijonon tarkistaminen valittavalla kirjaimella

Voit tarkistaa tietyt merkkijonot valitsemalla Select Case ja sitten Suorita koodi sen perusteella.

Alla olevassa esimerkkikoodissa se pyytää käyttäjää antamaan osastonsa ja näyttämään sen henkilön nimen, johon heidän on yhdistettävä alukseen pääsyä varten.

Sub OnboardConnect()Dim Department As StringDepartment = InputBox("Enter Your Department Name")Select Case DepartmentCase "Marketing"MsgBox "Please connect with Bob Raines for Onboarding"Case "Finance"MsgBox "Please connect with Patricia Cruz for Onboarding"Case "HR"MsgBox "Please connect with Oliver Rand for Onboarding"Case "Admin"MsgBox "Please connect with Helen Hume for Onboarding"Case ElseMsgBox "Please connect with Tony Randall for Onboarding"End SelectEnd Sub

Toivottavasti kaikki yllä olevat esimerkit olivat hyödyllisiä Select Case -konseptin ja sovelluksen ymmärtämisessä Excel VBA: ssa.

Saatat pitää myös seuraavista VBA-oppaista:

  • Excel VBA -silmukat – seuraavaksi, tee samalla, tee kunnes, jokaiselle.
  • seuraavalle silmukalle Excel VBA: ssa.
  • makron tallentaminen Excel.

Write a Comment

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *