Excel VBA-switchetui
Switch Case eller Select Case er en erklæring, der er tilgængelig i VBA til at udføre logiske tests, hvor den fungerer som et alternativ til IF-THEN-erklæring i VBA. Ved hjælp af en switch case kan vi udføre flere logiske tests og nå resultater baseret på flere resultater.
Nedenfor er syntaksen for Switch Case / Select Case-erklæringen.
Kode:
Vælg sag sag 1 værdi, hvis sag 1 test er SAND sag 2 værdi, hvis sag 2 test er sand sag 3 værdi, hvis sag 3 test er SAND sag, anden værdi, hvis ingen af ovenstående tilfælde er sand
: Hvad er den logiske test? Vi er nødt til at gå ind i testen her.
Case 1, Case 2: I begge tilfælde er vi nødt til at teste flere logiske tests i Excel.
Hvordan bruges VBA Switch Case Statement?
Eksempel nr. 1
I celle A1 har jeg indtastet værdien som 550.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_2.png.webp)
Vi tester dette nummer ved hjælp af switch case-erklæringer og når status som "Mere end 500", hvis værdien er mere end 500, ellers kommer vi til status som "Mindre end 500".
Åbn VBA Sub-proceduren først.
Kode:
Sub Switch_Case () Afslut Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_3.png.webp)
Åbn Select Case Statement i VBA, og angiv den logiske test Range (“A2”) værdi
Kode:
Sub Switch_Case () Vælg Case Range ("A2"). Værdi End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_4.png.webp)
Indtast nu den første sag, da sag er> 500.
Kode:
Sub Switch_Case () Vælg Case Range ("A2"). Value Case Is> 500 End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_5.png.webp)
Hvis denne sag er SAND, hvad er det resultat, vi har brug for i celle B, 2, dvs. “Mere end 500”.
Kode:
Sub Switch_Case () Vælg Case Range ("A2"). Value Case er> 500 Range ("B2"). Værdi = "Mere end 500" End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_6.png.webp)
Nu har vi kun ét resultat, dvs. Case Else-erklæring. Hvis den første sag er FALSK, har vi brug for resultatet som "Mindre end 500".
Kode:
Sub Switch_Case () Vælg saginterval ("A2"). Værdi Sag er> 500 rækkevidde ("B2"). Værdi = "Mere end 500" Sag andet rækkevidde ("B2"). Værdi = "Mindre end 500" Afslut sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_7.png.webp)
Luk nu erklæringen ved hjælp af "End Select" -erklæringen.
Kode:
Sub Switch_Case () Vælg saginterval ("A2"). Værdi Sag er> 500 rækkevidde ("B2"). Værdi = "Mere end 500" Sag andet rækkevidde ("B2"). Værdi = "Mindre end 500" Slutvalg Afslut sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_8.png.webp)
Kør koden, vi får værdien i celle B2.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement.gif)
Da værdien i celle A2 er større end 500, fik vi resultatet som "Mere end 500".
Eksempel 2
Nu ser vi brugen af flere eksempler på sager. Nedenfor er den studerendes score i eksamen.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_9.png.webp)
Med denne score er vi nødt til at nå frem til lønklasse, for nedenstående er kriterierne.
- Score> = 85, Grade = “Dist”
- Score> = 60, Karakter = “Først”
- Score> = 50, Grade = “Second”
- Score> = 35, karakter = “Bestået”
- Hvis noget andet, er karakter = "mislykkes."
Kode:
Sub Switch_Case1 ()
Dim score som heltalscore = 65 Vælg sag til case-sag er> = 85 MsgBox "Dist" sag er> = 60 MsgBox "Første" sag er> = 50 MsgBox "Anden" sag er> = 35 MsgBox "Pass" sag andet MsgBox " Mislykkes "Afslut Vælg afslut sub
Kør denne kode. Vi får karakteren i meddelelsesfeltet.
![](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.
- Hvis ingen logiske tests er SAND, kan du blot videregive det alternative resultat i CASE ELSE-sætningen og altid lukke udsagnet med ordet “END SELECT”.