VBA-tapauksen selvitys - Esimerkkejä VBA Select Case Statementista

Sisällysluettelo

Excel VBA -tapauslausunto

VBA Case Statement on yksi loogisista toiminnoista. Tapauslauseke testaa useita loogisia testejä ja saa tuloksen kahdella tavalla, eli jos tulos tai looginen testi on TOSI yksi tulosjoukko ja jos tulos tai looginen testi on EPÄTOSI, niin toinen tulosjoukko.

Loogiset testit suoritetaan tyypillisesti IF-kaavoilla, olipa kyseessä laskentataulukko tai VBA-koodaus; molemmilla alustoilla tämä toiminto auttaa meitä suorittamaan monenlaisia ​​monimutkaisia ​​laskelmia. Monet meistä eivät ymmärrä, että meillä on vaihtoehto VBA: n IF-lausunnolle, ts. "Case Statement". Tässä artikkelissa on yksityiskohtaiset tiedot tästä loogisesta lausekkeesta.

Syntaksi

Alla on Select Case -lausekkeen syntaksi.

Valitse tapaus "Testattavan arvon" tapaus on "Loogisen testin" tulos, jos tapaus 1 on TOSI Tapaus on "Looginen testi" tulos, jos tapaus 2 on TOSI Tapaus on "Looginen testi" tulos, jos tapaus 3 on TOSI Tapaus Muu, jos mikään tulokset ovat TOSI Loppu Valitse

Tämä on melkein samanlainen kuin IF-lauseen syntakse, mutta ELSEIF: n käyttämisen sijaan käytämme tapaus 1, tapaus 2, tapaus 3 ja niin edelleen.

Esimerkkejä VBA-tapauksen lausunnosta

Esimerkki 1

Solussa A1 olen kirjoittanut numeroksi 240.

Nyt testataan tämä luku, onko tämä suurempi kuin 200, käyttämällä SELECT CASE -käskyä .

Vaihe 1: Avaa Select Case -lauseke nyt.

Koodi:

Sub Select_Case_Example1 () Valitse Case End Sub

Vaihe 2: Kun “Select Case” on avattu, meidän on annettava testattava arvo. Tässä tapauksessa testataan solun A1 arvoja.

Koodi:

Sub Select_Case_Example1 () Valitse tapausalue ("A1"). Arvo End Sub

Vaihe 3: Kun testattava arvo on annettu, meidän on sovellettava loogisia testejä excelissä käyttämällä " Case Is " -sanaa.

Koodi:

Sub Select_Case_Example1 () Valitse tapausalue ("A1"). Arvo Case on> 200 End Sub

Vaihe 4: Seuraavalla rivillä meidän on annettava tulos-arvo, jos käytetty looginen testi on TOSI. Viestikentässä tarvitsemme tuloksen muodossa "Luku on> 200".

Koodi:

Alavalinta_tapa_esimerkki1 () Valitse tapausalue ("A1"). Arvotapaus on> 200 MsgBox "Numero on> 200" loppuosa

Vaihe 5: Tässä esimerkissä tarvitsemme vain kaksi tulosta, joten en käytä enempää “Case Is” -lausekkeita. Seuraavaksi käytän sanaa "Case Other" sulkemaan VBA: n "Select Case" -lausekkeen.

Koodi:

Alavalinta_tapa_esimerkki1 () Valitse tapausalue ("A1"). Arvotapauksen arvo on> 200 MsgBox "Numero on> 200" Muu tapauksen MsgBox "numero on <200" loppuosa

Vaihe 6: Kun kaikki tapaukset on toimitettu, meidän on suljettava valittu tapauslauseke sanalla ”End Select”.

Koodi:

Alavalinta_tapa_esimerkki1 () Valitse tapausalue ("A1"). Arvotapaus on> 200 MsgBox "Numero on> 200" Muita tapauksia MsgBox "-numero on <200" Loppu Valitse Lopeta ali

Vaihe 7: Suorita nyt koodi ja katso, mikä tulos saadaan VBA-viestiruudusta.

Saatu tulos on "Luku on> 200", koska solussa A1 arvo on 240, mikä on> 200.

Esimerkki 2

Näemme nyt käytännön esimerkkejä reaaliaikaisista testituloksista. Katso alla olevaa VBA-koodia.

Koodi:

Sub Select_Case_Example2 () Himmennä ScoreCard kokonaislukuna ScoreCard = Application.InputBox ("Pisteen tulisi olla m / v 0 - 100", "Mikä on testattava pisteet") Valitse tapaus ScoreCard Case Is> = 85 MsgBox "Distinction" Case Onko> = 60 MsgBox "ensimmäisen luokan" tapaus on> = 50 MsgBox "toisen luokan" tapaus on> = 35 MsgBox "pass" tapaus muu MsgBox "epäonnistunut" loppu Valitse loppu ala

Haluan selittää koodin riveittäin ymmärtääkseni paremmin.

Ensinnäkin olen ilmoittanut muuttujan kokonaislukuksi, ja tälle muuttujalle olen määrittänyt InputBoxin VBA: ssa, jossa käyttäjän on syötettävä pisteet välillä 0-100.

Kun suoritat koodin, näet syöttöruudun kuten alla, ja tässä syöttöruudussa sinun on annettava pisteet.

Nyt mitä syötämme syöttöruutuun, tallennetaan muuttujaan "ScoreCard".

In the next line, I have applied a select case statement to test this score.

First, it will test the ScoreCard>=85 or not. If this is TRUE, then we will get the value in the message box as “Distinction.”

Select Case ScoreCard Case Is>= 85 MsgBox "Distinction"

Similarly, in the following lines, I have applied the second test as ScoreCard>=60. If this is TRUE, then it will show the result as “First.”

Case Is>= 60 MsgBox "First Class"

Like this, I have applied other tests as well, and in the end, I have used the “Case Else” statement. If all the applied logical tests are FALSE, then we will get the result as “Fail.”

Case Else MsgBox "Fail"

Now I have supplied 68 as the score, and we should get the result as “First Class” in the message box.

Example #3 - Using the “To” keyword

In the above example, we have used student scores to arrive at the result. The same test can be conducted by using the “To” word to determine the lower limit and upper limit of the logical test.

Code:

Sub Select_Case_Example3() Dim ScoreCard As Integer ScoreCard = Application.InputBox("Score should be b/w 0 to 100", "What is the score you want to test") Select Case ScoreCard Case 85 To 100 MsgBox "Distinction" Case 60 To 84 MsgBox "First Class" Case 50 To 59 MsgBox "Second Class" Case 35 To 49 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub

I have used the same code as above, but the only yellow-colored area I have changed here. Based on the number we type in the input box accordingly, we will get the result.

Things to Remember

  • Valitse tapaus on vaihtoehto IF-lauseelle.
  • Select Case on käytettävissä vain VBA: n kanssa.
  • "Valitse tapaus" -rivin ensimmäisellä rivillä meidän on annettava vain testattava arvo. Sitten meidän on käytettävä "Case" -rivillä loogista testiä. Tämä on toisin kuin IF-tila.

Mielenkiintoisia artikkeleita...