VBA atvejo aprašymas VBA Select Case Statement pavyzdžiai

„Excel“ VBA atvejo aprašymas

„VBA Case Statement“ yra viena iš loginių funkcijų. Atvejo apraše išbandomi keli loginiai bandymai ir gaunami rezultatai dviem būdais, ty jei rezultatas arba loginis testas yra TIESA, vienas rezultatų rinkinys ir jei rezultatas arba loginis testas yra NETIESA, tada antrasis rezultatų rinkinys.

Loginiai bandymai paprastai atliekami naudojant IF formules, nesvarbu, ar tai būtų darbalapio formulė, ar VBA kodavimas; abiejose platformose ši funkcija padeda atlikti daugybę sudėtingų skaičiavimų. Nedaugelis iš mūsų supranta, kad turime alternatyvą IF teiginiui VBA, ty „Case Statement“. Šiame straipsnyje pateikiama išsami informacija apie šį loginį teiginį.

Sintaksė

Žemiau yra sakinio „Select Case“ sintaksė.

Pasirinkti atvejį „Tikrintina vertė“ yra „loginio testo“ rezultatas, jei 1 atvejis yra TIKRAS atvejis, jei rezultatas yra „loginis testas“, jei 2 atvejis yra TIKRA atvejis, jei rezultatas yra „loginis testas“, jei 3 atvejis yra TIESA, jei nėra nė vieno rezultatai yra TRUE End Select

Tai beveik panašu į IF sakinių sintaksę, tačiau užuot naudoję ELSEIF, mes naudojame 1 atvejį, 2 atvejį, 3 atvejį ir pan.

VBA bylos aprašymo pavyzdžiai

1 pavyzdys

Langelyje A1 įrašiau skaičių 240.

Dabar mes patikrinsime šį skaičių, ar jis didesnis nei 200, naudodami teiginįSELECT CASE“ .

1 žingsnis: Dabar atidarykite „Select Case“ pareiškimą.

Kodas:

Sub Select_Case_Example1 () Pasirinkite Case End Sub

2 žingsnis: Atidarę „Select Case“, turime pateikti vertę, kurią bandome. Šiuo atveju mes tikriname langelio A1 reikšmes.

Kodas:

Sub Select_Case_Example1 () Pasirinkite atvejų diapazoną ("A1"). Reikšmė End Sub

3 žingsnis: kai tikrinamoji vertė bus suteikta dabar, turime taikyti loginius testus „Excel“, naudodami žodį „ Byla yra “.

Kodas:

Sub Select_Case_Example1 () Pasirinkite bylų diapazoną ("A1"). Reikšmės atvejis yra> 200 End Sub

4 žingsnis: Dabar kitoje eilutėje turime pateikti reikšmę „rezultatas“, jei pritaikytas loginis testas yra TIESA. Pranešimo laukelyje mums reikia rezultato, nes „Skaičius yra> 200“.

Kodas:

Sub Select_Case_Example1 () Pasirinkite atvejų diapazoną ("A1"). Reikšmės atvejis yra> 200 MsgBox "skaičius yra> 200" End Sub

5 žingsnis: Šiame pavyzdyje mums reikia tik dviejų rezultatų, todėl nenaudosiu daugiau „Case Is“ teiginių. Toliau naudosiu žodį „Case Other“, kad uždaryčiau VBA „Select Case“ teiginį.

Kodas:

Sub Select_Case_Example1 () Pasirinkite bylų diapazoną ("A1"). Reikšmės atvejis yra> 200 MsgBox "skaičius yra> 200" Case Case MsgBox "skaičius yra <200" End Sub

6 žingsnis: Pateikę visus atvejus, turime uždaryti pasirinktą atvejo pareiškimą naudodami žodį „Pabaigos pasirinkimas“.

Kodas:

Sub Select_Case_Example1 () Pasirinkite bylų diapazoną ("A1"). Reikšmės atvejis yra> 200 MsgBox "skaičius yra> 200" Case Case MsgBox "skaičius yra <200" End Select End End Sub

7 žingsnis: Dabar paleiskite kodą ir sužinokite, kokį rezultatą gauname VBA pranešimų laukelyje.

Rezultatas yra „Skaičius yra> 200“, nes A1 langelyje vertė yra 240, o tai yra> 200.

2 pavyzdys

Dabar pamatysime keletą praktinių rezultatų tikrinimo realiuoju laiku pavyzdžių. Pažvelkite į žemiau esantį VBA kodą.

Kodas:

Sub Select_Case_Pavyzdys2 () „Dim ScoreCard“ kaip sveikas skaičius ScoreCard = Application.InputBox („Rezultatas turėtų būti b / w nuo 0 iki 100“, „Koks yra norimas išbandyti balas“) Pasirinkti atvejį „ScoreCard“ atvejis yra> = 85 MsgBox „Skirtumas“ Byla Ar> = 60 „MsgBox“ „pirmos klasės“ atvejis yra> = 50 „MsgBox“ antros klasės atvejis yra> = 35 „MsgBox“ atvejis „kitam atvejui“ „MsgBox“ nepavyko „pabaiga“ Pabaiga Pasirinkite pabaigos antrinė dalis

Leiskite man paaiškinti kodą eilutėmis po eilutes, kad geriau suprasčiau.

Pirma, aš paskelbiau kintamąjį kaip sveikąjį skaičių ir šiam kintamajam priskyriau „InputBox“ VBA, kur vartotojas turi įvesti balą nuo 0 iki 100.

Kai paleisite kodą, pamatysite įvesties laukelį, kaip nurodyta toliau, ir šiame įvesties laukelyje turite įvesti balą.

Dabar viskas, ką įvesime įvesties laukelyje, bus saugoma kintamajame „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

  • „Select Case“ yra IF teiginio alternatyva.
  • „Select Case“ galima tik su VBA.
  • Pirmoje „Pasirinkti atvejį“ eilutėje turime pateikti tik vertę, kurią reikia išbandyti. Tada eilutėje „Byla“ turime taikyti loginį testą. Tai nepanašu į mūsų IF sąlygą.

Įdomios straipsniai...