Obudowa przełącznika Excel VBA
W przypadku VBA Switch Case, gdy musimy logicznie sprawdzić lub przeanalizować warunek i wykonać na nim różne wiersze kodów, używamy instrukcji warunkowej IF-Else. Podobnie istnieje jeszcze jedna instrukcja Switch Case, która jest szerzej znana jako instrukcja Select Case, która może sprawdzać lub analizować wiele warunków logicznych i wykonywać na nich wiersze kodu. Jeśli masz trzy lub więcej warunków logicznych do sprawdzenia, zaleca się użycie Select Case lub Switch Case zamiast konwencjonalnej instrukcji IF-Else. Ponieważ dzięki temu kod VBA jest szybszy i bardziej zrozumiały zamiast zagnieżdżonych instrukcji IF-Else w takich przypadkach.
Switch Case / Select Case
Przełącz przypadek lub zaznacz przypadek w VBA działa na podobnych liniach jak w instrukcjach IF-Else. Sprawdza wiele wyrażeń logicznych / warunkowych względem różnych wartości (przypadków). Gdy tylko jakikolwiek przypadek spełni warunek (stanie się prawdziwy dla danego warunku), system wykonuje ten przypadek, a pozostałe przypadki są ignorowane w celu wykonania. W przypadku, gdy istnieją dwa przypadki, które są prawdziwe dla danego warunku, tylko pierwszy zostanie wykonany z prawem pierwszeństwa.
Składnia instrukcji Case Case / Select Case wygląda następująco:
Select Case
Case value_1
Code to Execute when Expression = value_1
Case value_2
Code to Execute when Expression = value_2
Case value_3
Code to Execute when Expression = value_3
.
.
.
Case value_n
Code to Execute when Expression = value_n
Case Else
Code to Execute when no case value meets the expression/logical test.
End Select
Gdzie,
Wyrażenie: jest to wyrażenie, dla którego chcieliśmy sprawdzić lub przeanalizować przy użyciu różnych wartości wielkości liter.
wartość_1, wartość_2, wartość_3, … to warunki logiczne, które należy sprawdzić dla danego wyrażenia.
Jak korzystać z instrukcji Case Case w programie Excel VBA?
Dowiemy się, jak korzystać z instrukcji Case Case w programie Excel za pomocą kodu VBA.
Możesz pobrać ten szablon Excel Case Case VBA tutaj - Szablon Excel Case Case VBAObudowa przełącznika VBA - przykład nr 1
Sprawdzimy, czy podana liczba jest mniejsza niż 100 czy więcej niż 100. W tym celu wykonaj następujące czynności:
Krok 1: Wstaw nowy moduł do Visual Basic Editor (VBE). Kliknij kartę Wstaw > wybierz Moduł.
Krok 2: Zdefiniuj nową podprocedurę we wstawionym module, która może przechowywać twoje makro.
Kod:
Sub switch_case_example1 () End Sub
Krok 3: Zdefiniuj nową zmienną o nazwie usrInpt, która może przechowywać wartość użytkownika. Skorzystaj z funkcji InputBox VBA, aby utworzyć pole wprowadzania, które przyjmuje wartości użytkownika poprzez zmienną usrInpt .
Kod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox („Proszę podać swoją wartość”) End Sub
Krok 4: Użyj instrukcji Select Case i podaj wartość podaną przez użytkownika poprzez zmienną usrInpt . To wyrażenie musimy sprawdzić w warunkach logicznych.
Kod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox („Proszę podać swoją wartość”) Wybierz Case usrInpt End Sub
Krok 5: Wprowadź pierwszy test logiczny, który ma zostać sprawdzony w instrukcji Case w następujący sposób.
Kod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox („Proszę podać swoją wartość”) Wybierz Case usrInpt Case Is <100 End Sub
Krok 6: Użyj funkcji MsgBox, aby dodać komunikat wyjściowy, jeśli wielkość liter <100 jest prawdą.
Kod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox („Proszę podać swoją wartość”) Wybierz Case usrInpt Case Is <100 MsgBox ”Podana liczba jest mniejsza niż 100” End Sub
Krok 7: Teraz musimy podać instrukcję wykonywalną, gdy wartość usrInpt jest większa niż 100. Aby to osiągnąć, dodaj Case i MsgBox.
Kod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox („Proszę podać swoją wartość”) Wybierz Case usrInpt Case Is 100 MsgBox ”Podana liczba jest większa niż 100” End Sub
Krok 8: Co jeśli wartość podana przez użytkownika to dokładnie 100? Nie dodano do tego sprawy. Dodajmy ten, który daje użytkownikowi komunikat, że wprowadzona wartość to 100.
Kod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox („Proszę podać swoją wartość”) Wybierz Case usrInpt Case Is 100 MsgBox ”Podana liczba jest większa niż 100„ Case Is = 100 MsgBox ”Podana liczba to 100„ End Sub
Krok 9: Musimy zakończyć instrukcję Select Case. Użyj End Select, aby zakończyć utworzoną pętlę.
Kod:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox („Proszę podać swoją wartość”) Wybierz Case usrInpt Case Is 100 MsgBox ”Podana liczba jest większa niż 100„ Case Is = 100 MsgBox ”Podana liczba to 100„ End Select End Pod
Krok 10: Teraz uruchom ten kod, naciskając przycisk Uruchom lub F5. Pojawi się nowe okno podręczne z prośbą o sprawdzenie wartości. Wprowadzę wartość jako 110 i naciśnij przycisk OK w polu wprowadzania. Ponieważ liczba, którą wpisuję, jest większa niż 100, jak tylko kliknę OK, na ekranie pojawi się nowa wiadomość z informacją: „Podana liczba jest większa niż 100”.
Obudowa przełącznika VBA - przykład 2
Załóżmy, że chcemy uchwycić ocenę uczniów na podstawie ich ocen. Zobacz, jak możemy to osiągnąć.
Krok 1: Zdefiniuj nową podprocedurę o nazwie przełącznik_przykład_przykład2 .
Kod:
Sub switch_case_example2 () End Sub
Krok 2: Zdefiniuj dwie nowe zmienne - znaczniki jako liczby całkowite i stopnie jako ciąg przy użyciu instrukcji Dim w utworzonej podprocedurze.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grades As String End Sub
Krok 3: Użyj funkcji VBA InputBox, za pomocą której użytkownik może wprowadzić wartość znaczników zmiennych.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grades As String marks = InputBox („Please enter the marks”) End Sub
Krok 4: Użyj instrukcji Select Case i podaj znaczniki zmiennych jako wyrażenie do sprawdzenia.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz znaczniki liter End Sub
Ponieważ chcemy przypisywać oceny uczniom na podstawie ocen, które wprowadzają, musimy najpierw zdefiniować oceny.
Krok 5: Użyj instrukcji case, aby sprawdzić, czy oceny są mniejsze niż 35. Jeśli tak, przypisz wartość „F” do ocen zmiennych.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Oznaczenie liter Wielkość liter <35 stopni = „F” End Sub
Krok 6: Jeśli oceny wynoszą od 35 do 45, przypisz wartość „D” do ocen zmiennych.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Znaczniki znaków Case Is <35 stopni = „F” Case 35 To 45 grades = „D” End Sub
Krok 7: Jeśli wprowadzone znaki wynoszą od 46 do 55, wartość „C” powinna zostać przypisana do zmiennych stopni.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Znaczniki Case Case <35 stopni = „F” Case 35 To 45 stopni = „D” Case 46 To 55 stopni = „C” End Sub
Krok 8: Gdy oceny mieszczą się w zakresie od 56 do 65, wartość przypisana do ocen zmiennych powinna wynosić „B”.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Znaczniki Case Case <35 stopni = „F” Case 35 To 45 stopni = „D” Case 46 To 55 stopni = „C” Przypadek 56 do 65 stopni = „B” End Sub
Krok 9: W przypadku ocen od 66 do 75 ocena powinna wynosić „A”.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Znaczniki Case Case <35 stopni = „F” Case 35 To 45 stopni = „D” Case 46 To 55 stopni = „C” Przypadek 56 do 65 stopni = „B” Przypadek 66 do 75 stopni = „A” End Sub
Krok 10: Jeśli wprowadzone znaki są większe niż 75, zmiennej ocen należy przypisać wartość „A +”
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Oznacz wielkość liter Case Is 75 grades = „A +” End Sub
Krok 11: Użyj End Wybierz i zamknij pętlę Select Case.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Oznacz wielkość liter Case Is 75 stopni = „A +” End Wybierz End Sub
Krok 12: Teraz musimy sprawdzić, jaka ocena jest powiązana z ocenami wprowadzonymi przez studenta. Aby to osiągnąć, użyj funkcji MsgBox w taki sposób, że oznacza ona osiągnięte oceny w oknie komunikatu.
Kod:
Sub switch_case_example2 () Dim marks As Integer Dim grad As As String marks = InputBox („Please enter the marks”) Wybierz Case case Case Is 75 grades = "A +" End Select MsgBox "Stopień osiągnięty to:" & grad End End Sub
Krok 13: Uruchom ten kod, naciskając klawisz F5 lub Run, a zobaczysz pole wprowadzania VBA z prośbą o wartość znaku. Wprowadzę znaki jako 72 i uderzę w przycisk OK znajdujący się w polu wprowadzania. Jak tylko kliknę przycisk OK w polu wprowadzania, otrzymam okno komunikatu z ocenami związanymi z wprowadzonymi znakami.
W ten sposób możemy użyć instrukcji Switch / Select Case w VBA.
Rzeczy do zapamiętania
- Wielkość liter jest właściwie synonimem instrukcji Select Case w VBA. Zostało to nazwane tak, ponieważ za pomocą tego oświadczenia możemy przełączać się między różnymi wyjściami w tym samym czasie.
- Ta instrukcja może być używana jako alternatywa dla pętli IF-Else, ilekroć mamy trzy lub więcej warunków do sprawdzenia.
- Jest OK, jeśli nie używasz ELSE Case w instrukcji Select Case. Jednak w takim przypadku musisz upewnić się, że co najmniej jeden warunek jest spełniony w całej pętli.
Polecane artykuły
Jest to przewodnik po obudowie przełącznika VBA. Tutaj omawiamy, jak korzystać z instrukcji Case Case w Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -
- Kolekcja VBA (przykłady)
- Instrukcje VBA IF | Szablony programu Excel
- Jak korzystać z funkcji sortowania Excel VBA?
- VBA While Loop (przykłady z szablonem Excel)
- VBA Environ