VBA esetnyilatkozat - Példák a VBA Select Case Statementre

Tartalomjegyzék

Excel VBA esetnyilatkozat

A VBA Case Statement az egyik logikai funkció. Az Case Statement több logikai tesztet tesztel, és kétféleképpen érkezik az eredmény, azaz ha az eredmény vagy a logikai teszt IGAZ egy eredményhalmaz, és ha az eredmény vagy logikai teszt HAMIS, akkor a második eredményhalmaz.

A logikai teszteket általában IF képletek segítségével hajtják végre, legyen az munkalap képlet vagy VBA kódolás; mindkét platformon ez a funkció sokféle bonyolult számítás elvégzésében segít. Közülünk nem sokan veszik észre, hogy van alternatívánk a VBA IF-állításával, vagyis az „Esettanulmány”. Ez a cikk teljes részletességgel szolgál erről a logikai állításról.

Szintaxis

Az alábbiakban olvasható a „Select Case” utasítás szintaxisa.

Válassza a „Tesztelendő érték” esetet: „Logikai teszt” eredmény, ha az 1. eset IGAZ. Az eset „logikai teszt” eredmény, ha a 2. eset IGAZ. Az eset „logikai teszt” eredmény, ha a 3. eset IGAZ. eredmények az IGAZ Vég kiválasztása

Ez szinte hasonló az IF utasítás szintaxisához, de az ELSEIF használata helyett az 1. esetet, a 2. esetet, a 3. esetet és így tovább használjuk.

Példák a VBA esetnyilatkozatára

1. példa

Az A1 cellába beírtam a számot 240-nek.

Most a SELECT CASE utasítás használatával teszteljük ezt a számot, hogy ez nagyobb-e 200-nál, vagy sem .

1. lépés: Nyissa meg most a Select Case nyilatkozatot.

Kód:

Sub Select_Case_Példa1 () Válassza az Case End Sub lehetőséget

2. lépés: Miután megnyílt a „Select Case”, meg kell adnunk a tesztelt értéket. Ebben az esetben az A1 cella értékeit teszteljük.

Kód:

Sub Select_Case_Példa1 () Esettartomány kiválasztása ("A1"). Érték End Sub

3. lépés: Miután a tesztelendő értéket megadta, logikai teszteket kell alkalmaznunk az excelben a „ Case Is ” szó használatával.

Kód:

Sub Select_Case_Példa1 () Esettartomány kiválasztása ("A1"). Az érték eset> 200 End Sub

4. lépés: Most a következő sorban meg kell adnunk az „eredmény” értéket, ha az alkalmazott logikai teszt IGAZ. Az üzenet mezőben szükségünk van az eredményre, mivel „A szám> 200”.

Kód:

Sub Select_Case_Példa1 () Esettartomány kiválasztása ("A1"). Az érték eset> 200 MsgBox "szám> 200" End Sub

5. lépés: Ebben a példában csak két eredményre van szükségünk, ezért nem használok több „Case Is” állítást. Ezután az „Eset más” szót használom a VBA „Eset kiválasztása” utasítás bezárásához.

Kód:

Sub Select_Case_Példa1 () Esettartomány kiválasztása ("A1"). Az érték eset értéke> 200 MsgBox "A szám> 200" Az eset más MsgBox "száma <200" End Sub

6. lépés: Miután az összes eset megadva van, be kell zárnunk a kiválasztott esetet a „Vége kiválasztás” szó használatával.

Kód:

Sub Select_Case_Példa1 () Esettartomány kiválasztása ("A1"). Az érték eset értéke> 200 MsgBox "A szám> 200" Az eset más MsgBox "száma <200" End Select Vége Sub

7. lépés: Most futtassa a kódot, és nézze meg, milyen eredményt kapunk a VBA üzenetmezőben.

Az eredmény „A szám> 200”, mert az A1 cellában az érték 240, ami> 200.

2. példa

Most néhány gyakorlati, valós idejű példát fogunk látni a pontszámok tesztelésére. Nézze meg az alábbi VBA kódot.

Kód:

Sub Select_Case_Example2 () Dim ScoreCard Integer ScoreCard = Application.InputBox ("A pontszám legyen f / w 0 és 100 között", "Mi a tesztelni kívánt pontszám") Válassza ki az esetet ScoreCard Case Is = = 85 MsgBox "Distinction" Case Van> = 60 MsgBox "első osztályú" eset> = 50 MsgBox "második osztály" esete> = 35 MsgBox "megfelelő" eset más MsgBox "sikertelen" vége Válasszon véget al

Hadd magyarázzam el a kódot soronként, hogy jobban megértsem.

Először a változót egész számnak nyilvánítottam, és ehhez a változóhoz az InputBox-ot rendeltem a VBA-ban, ahol a felhasználónak 0 és 100 közötti pontszámot kell megadnia.

Amikor futtatja a kódot, látni fogja az alábbiakhoz hasonló beviteli mezőt, és ebben a beviteli mezőben meg kell adnia a pontszámot.

Most, amit beírunk a beviteli mezőbe, a „ScoreCard” változó tárolja.

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

  • A Select Case az IF utasítás alternatívája.
  • A Select Case csak a VBA-val érhető el.
  • A „Select Case” első sorában csak azt az értéket kell megadnunk, amelyet tesztelni kell. Ezután az „Eset” sorban alkalmaznunk kell a logikai tesztet. Ez eltér az IF feltételünktől.

érdekes cikkek...