Instrukcja VBA Case - Przykłady instrukcji VBA Select Case

Instrukcja Excel VBA Case

Instrukcja VBA Case jest jedną z funkcji logicznych. Case Statement testuje wiele testów logicznych i uzyskuje wynik na dwa sposoby, tj. Jeśli wynik lub test logiczny jest PRAWDA, jeden zestaw wyników, a jeśli wynik lub test logiczny ma wartość FALSE, to drugi zestaw wyników.

Testy logiczne są zwykle przeprowadzane przy użyciu formuł IF, czy to formuły arkusza, czy w kodowaniu VBA; w obu platformach funkcja ta pomaga nam w przeprowadzaniu różnego rodzaju skomplikowanych obliczeń. Niewielu z nas zdaje sobie sprawę, że mamy alternatywę dla instrukcji IF w języku VBA, tj. „Case Statement”. Ten artykuł zawiera szczegółowe informacje na temat tego logicznego stwierdzenia.

Składnia

Poniżej znajduje się składnia instrukcji „Select Case”.

Wybierz przypadek „Wartość do testowania” Przypadek to „Test logiczny” Wynik, jeśli przypadek 1 jest PRAWDA Przypadek jest „Test logiczny” Wynik, jeśli przypadek 2 jest PRAWDA Przypadek jest „Test logiczny” Wynik, jeśli przypadek 3 jest PRAWDA Przypadek inny Jeśli żaden z wyniki są TRUE End Select

Jest to prawie podobne do składni instrukcji IF, ale zamiast używać ELSEIF, używamy przypadku 1, przypadku 2, przypadku 3 i tak dalej.

Przykłady instrukcji VBA Case

Przykład 1

W komórce A1 wpisałem liczbę 240.

Teraz sprawdzimy, czy ta liczba jest większa niż 200, czy nie, za pomocą instrukcji SELECT CASE .

Krok 1: Otwórz teraz instrukcję Select Case.

Kod:

Sub Select_Case_Example1 () Wybierz Case End Sub

Krok 2: Po otwarciu „Select Case” musimy podać wartość, którą testujemy. W tym przypadku testujemy wartości komórki A1.

Kod:

Sub Select_Case_Example1 () Select Case Range („A1”). Value End Sub

Krok 3: Kiedy już zostanie podana wartość do przetestowania, musimy zastosować testy logiczne w programie Excel, używając słowa „ Case Is ”.

Kod:

Sub Select_Case_Example1 () Select Case Range („A1”). Value Case is> 200 End Sub

Krok 4: Teraz w następnym wierszu musimy podać wartość „wyniku”, jeśli zastosowany test logiczny ma wartość TRUE. W oknie komunikatu potrzebujemy wyniku jako „Liczba jest> 200”.

Kod:

Sub Select_Case_Example1 () Select Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" End Sub

Krok 5: W tym przykładzie potrzebujemy tylko dwóch wyników, więc nie będę używał więcej stwierdzeń „przypadek jest”. Następnie użyję słowa „Case Else”, aby zamknąć instrukcję VBA „Select Case”.

Kod:

Sub Select_Case_Example1 () Select Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Sub

Krok 6: Po dostarczeniu wszystkich przypadków musimy zamknąć instrukcję wyboru przypadku za pomocą słowa „End Select”.

Kod:

Sub Select_Case_Example1 () Wybierz zakres wielkości liter ("A1"). Wartość Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Select End Sub

Krok 7: Teraz uruchom kod i zobacz, jaki wynik otrzymujemy w oknie komunikatu VBA.

Otrzymany przez nas wynik to „Liczba jest> 200”, ponieważ w komórce A1 ma wartość 240, czyli> 200.

Przykład nr 2

Teraz zobaczymy kilka praktycznych przykładów wyników testów w czasie rzeczywistym. Spójrz na poniższy kod VBA.

Kod:

Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox ("Wynik powinien być b / w 0 do 100", "Jaki jest wynik, który chcesz przetestować") Wybierz Case ScoreCard Case Is> = 85 MsgBox "Distinction" Case Is> = 60 MsgBox "First Class" Case Is> = 50 MsgBox "Second Class" Case Is> = 35 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub

Pozwólcie, że wyjaśnię kod wiersz po wierszu, aby lepiej zrozumieć.

Najpierw zadeklarowałem zmienną jako Integer, a dla tej zmiennej przypisałem InputBox w VBA, w którym użytkownik musi wprowadzić wynik od 0 do 100.

Po uruchomieniu kodu zobaczysz pole wejściowe, takie jak poniżej, aw tym polu wejściowym musisz wprowadzić wynik.

Teraz wszystko, co wprowadzimy w polu wejściowym, zostanie zapisane w zmiennej „ScoreCard”.

W następnym wierszu zastosowałem instrukcję select case, aby przetestować ten wynik.

Najpierw sprawdzi kartę wyników> = 85 lub nie. Jeśli jest to PRAWDA, otrzymamy wartość w oknie komunikatu jako „Wyróżnienie”.

Wybierz skrzynkę ScoreCard Case Is> = 85 MsgBox "Distinction"

Podobnie w kolejnych wierszach zastosowałem drugi test jako ScoreCard> = 60. Jeśli jest to PRAWDA, to pokaże wynik jako „Pierwszy”.

Sprawa jest> = 60 MsgBox „Pierwsza klasa”

W ten sposób zastosowałem również inne testy, a na koniec użyłem instrukcji „Case Else”. Jeśli wszystkie zastosowane testy logiczne są FAŁSZEM, otrzymamy wynik jako „Niepowodzenie”.

Case Else MsgBox „Fail”

Teraz podałem wynik 68 i powinniśmy otrzymać wynik jako „Pierwsza klasa” w oknie komunikatu.

Przykład nr 3 - użycie słowa kluczowego „Do”

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 to alternatywa dla instrukcji IF.
  • Opcja Select Case jest dostępna tylko z VBA.
  • W pierwszym wierszu „Select Case” musimy podać tylko wartość, która ma zostać przetestowana. Następnie w wierszu „Case” musimy zastosować test logiczny. To jest w przeciwieństwie do naszego warunku IF.

Interesujące artykuły...