Obudowa przełącznika Excel VBA
Switch Case lub Select Case to instrukcja dostępna w VBA do przeprowadzania testów logicznych, gdzie działa jako alternatywa dla instrukcji IF-THEN w VBA. Korzystając z przełącznika, możemy przeprowadzić wiele testów logicznych i otrzymać wyniki oparte na wielu wynikach.
Poniżej znajduje się składnia instrukcji Switch Case / Select Case.
Kod:
Wybierz przypadek 1 Wartość, jeśli test przypadku 1 jest PRAWDA Wartość przypadku 2, jeśli test przypadku 2 jest PRAWDA Wartość przypadku 3, jeśli test przypadku 3 jest PRAWDA Wartość przypadku Inaczej, jeśli żaden z powyższych przypadków nie jest PRAWDA Koniec Wybierz
: Jaki jest test logiczny? Musimy wprowadzić test tutaj.
Przypadek 1, Przypadek 2: W każdym przypadku musimy przetestować wiele testów logicznych w programie Excel.
Jak korzystać z instrukcji VBA Switch Case?
Przykład 1
W komórce A1 wpisałem wartość 550.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_2.png.webp)
Przetestujemy ten numer za pomocą instrukcji switch case i otrzymamy status „Więcej niż 500”, jeśli wartość jest większa niż 500, albo otrzymamy stan „Mniej niż 500”.
Najpierw otwórz procedurę VBA Sub.
Kod:
Sub Switch_Case () End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_3.png.webp)
Otwórz instrukcję Select Case w języku VBA i podaj wartość testu logicznego Range („A2”)
Kod:
Sub Switch_Case () Wybierz zakres przypadku ("A2")
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_4.png.webp)
Teraz wprowadź pierwszy przypadek, ponieważ Case jest> 500.
Kod:
Sub Switch_Case () Wybierz zakres wielkości liter ("A2"). Przypadek wartości jest> 500 End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_5.png.webp)
Jeśli ten przypadek jest PRAWDA, to jakiego wyniku potrzebujemy w komórce B, 2, tj. „Więcej niż 500”.
Kod:
Sub Switch_Case () Wybierz zakres wielkości liter („A2”). Przypadek wartości jest> 500 zakres („B2”). Wartość = „Więcej niż 500” End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_6.png.webp)
Teraz pozostaje nam tylko jeden wynik, tj. Instrukcja Case Else. Jeśli pierwszy przypadek ma wartość FAŁSZ, wówczas wynik powinien mieć wartość „Mniej niż 500”.
Kod:
Sub Switch_Case () Wybierz zakres wielkości liter („A2”). Przypadek wartości jest> 500 zakres („B2”). Wartość = „Więcej niż 500” W przeciwnym razie zakres („B2”). Wartość = „Mniej niż 500” End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_7.png.webp)
Teraz zamknij instrukcję, używając instrukcji „End Select”.
Kod:
Sub Switch_Case () Wybierz zakres wielkości liter („A2”). Przypadek wartości jest> 500 zakres („B2”). Wartość = „Więcej niż 500” W przeciwnym razie zakres („B2”). Wartość = „Mniej niż 500” Koniec Wybierz Napis końcowy
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_8.png.webp)
Uruchom kod, otrzymamy wartość w komórce B2.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement.gif)
Ponieważ wartość w komórce A2 jest większa niż 500, otrzymaliśmy wynik jako „Więcej niż 500”.
Przykład nr 2
Teraz zobaczymy więcej przykładów przypadków. Poniżej znajduje się punktacja ucznia z egzaminu.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_9.png.webp)
Z tym wynikiem musimy dojść do oceny, ponieważ poniżej znajdują się kryteria.
- Wynik> = 85, Ocena = „Dyst.”
- Wynik> = 60, Ocena = „Pierwsza”
- Wynik> = 50, Ocena = „Druga”
- Wynik> = 35, Ocena = „Zdany”
- Jeśli cokolwiek innego, ocena = „niepowodzenie”.
Kod:
Sub Switch_Case1 ()
Dim Score As Integer Score = 65 Select Case Score Case Is> = 85 MsgBox "Dist" Case Is> = 60 MsgBox "First" Case Is> = 50 MsgBox "Second" Case Is> = 35 MsgBox "Pass" Case Else MsgBox " Niepowodzenie „End Wybierz End Sub
Uruchom ten kod. Ocenę otrzymamy w okienku wiadomości.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_2.gif)
Since the score is more than 60 but less than 85 grade is “First.”
Example #3
We have seen how to find a grade for one student, what about finding a grade for more than one student. Below are the scores of students.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_10.png.webp)
Since more than one student is involved, we need to enclose FOR NEXT loop in VBA. Below is the VBA code.
Code:
Sub Switch_Case2() Dim k As Integer For k = 2 To 7 Select Case Cells(k, 2).Value Case Is>= 85 Cells(k, 3).Value = "Dist" Case Is>= 60 Cells(k, 3).Value = "First" Case Is>= 50 Cells(k, 3).Value = "Second" Case Is>= 35 Cells(k, 3).Value = "Pass" Case Else Cells(k, 3).Value = "Fail" End Select Next k End Sub
Run this code. We will get grades.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_3.gif)
Things to Remember
- Switch Case is often referred to as “Select Case.”
- The switch is a function, not a statement.
- Jeśli żadne testy logiczne nie są PRAWDA, możesz po prostu przekazać alternatywny wynik w instrukcji CASE ELSE i zawsze zamknąć instrukcję słowem „END SELECT”.