Przełącznik VBA - Jak korzystać z instrukcji Switch w programie Excel VBA?

Spisie treści:

Anonim

Instrukcja Excel VBA Switch

Przełączanie w VBA jest podobne do funkcji wyboru wielkości liter. Jedyna różnica między nimi polega na tym, że musimy napisać znacznie mniej kodów w przełączniku w porównaniu do wyboru wielkości liter. Możemy napisać instrukcję przełączającą wewnątrz podprocedury lub możemy napisać ją jako funkcję zdefiniowaną przez użytkownika w VBA.

Przełącz w VBA ocenia wyrażenie i podaje dane wyjściowe na podstawie warunków dla tego wyrażenia. W instrukcjach wybranych przypadków zdefiniowaliśmy przypadki, w których jeśli mamy przypadek, wynikiem powinno być b itd. Wymagało to napisania dużej liczby kodów dla instrukcji case case, ale w Switch możemy scalić wszystkie warunki i wyrażenia w jednej instrukcji zamiast wielu instrukcji case.

Składnia instrukcji Switch

Switch oblicza pierwsze wyrażenie, a jeśli wartość jest prawdą, zwraca wartość dla wyrażenia, a jeśli wartość dla wyrażenia 1 nie jest prawdziwa, przechodzi do tego samego obliczenia dla wyrażenia 2, a jeśli wynik jest prawdziwy, wyświetlana jest wartość 2, ale jeśli wyrażenie zwracane jest fałszywe, przełącznik przechodzi do innego wyrażenia.

Co się stanie, jeśli żadne z wyrażeń nie będzie prawdziwe, a wszystkie z nich zostaną zwrócone jako False, w takim przypadku otrzymamy błąd czasu wykonania, chyba że mamy do czynienia z takim wyprzedzeniem.

Jak korzystać z instrukcji Switch w programie Excel VBA?

Poniżej znajdują się różne przykłady użycia instrukcji VBA Switch w programie Excel.

Możesz pobrać ten szablon Excela VBA Switch tutaj - Szablon Excela VBA Switch

Przełącznik VBA - Przykład 1

Zacznijmy od podstawowego przykładu, aby uzyskać pojęcie o instrukcji przełączania VBA. Pobieramy dane wejściowe od użytkownika i na podstawie tych danych wejściowych określamy dane wyjściowe. Będziemy pobierać dane liczbowe od 1 do 5 i na podstawie danych wejściowych uzyskamy predefiniowane wyniki, ale jeśli użytkownik wprowadzi dowolną liczbę inną niż nasz zakres, będziemy musieli poradzić sobie z tym błędem.

Wykonaj poniższe czynności, aby użyć instrukcji Switch w programie Excel VBA:

Krok 1: Z zakładki Visual Basic przejdź do edytora VB z zakładki programisty.

Krok 2: W oknie edytora VB wstaw nowy moduł z zakładki Wstaw.

Krok 3: Zadeklaruj nową podprocedurę w właśnie utworzonym nowym module.

Kod:

 Sub Sample () End Sub 

Krok 4: Zadeklaruj dwie zmienne A i B, jedną jako liczbę całkowitą, a drugą jako ciąg.

Kod:

 Sub Sample () Dim A As Integer Dim B As String End Sub 

Krok 5: W zmiennej A zapisz wartość podaną przez użytkownika za pomocą funkcji pola wprowadzania.

Kod:

 Sub Próbka () Dim A jako liczba całkowita Dim B jako ciąg A = InputBox („Enter a Value”, „wartość powinna wynosić od 1 do 5”) End Sub 

Krok 6: Teraz w zmiennej B użyjemy instrukcji przełączania VBA, aby ocenić wynik zgodnie z danymi wejściowymi dostarczonymi przez użytkownika.

Kod:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox („Enter a Value”, „wartość powinna wynosić od 1 do 5”) B = Switch (A = 1, „One”, A = 2, „Two ”, A = 3, „ Three ”, A = 4, „ Four ”, A = 5, „ Five ”) End Sub 

Krok 5: Wyświetl wartość zapisaną w B za pomocą funkcji MSGBOX.

Kod:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox („Enter a Value”, „wartość powinna wynosić od 1 do 5”) B = Switch (A = 1, „One”, A = 2, „Two ”, A = 3, „ Three ”, A = 4, „ Four ”, A = 5, „ Five ”) MsgBox B End Sub 

Krok 6: Uruchom powyższy kod, naciskając klawisz F5 i poprosi nas o wprowadzenie liczby całkowitej. Podaj liczbę 3 i naciśnij ok, aby zobaczyć wynik.

Krok 7: Teraz ponownie uruchommy kod i wprowadźmy liczbę 6 i zobaczmy otrzymany wynik.

Występuje błąd czasu wykonywania, ponieważ w naszej instrukcji switch nie ma wyrażenia do zdefiniowania 6. W takich sytuacjach musimy mieć pewną uprzedzającą obsługę błędów.

Krok 8: Aby przezwyciężyć ten błąd czasu wykonywania, zadeklaruj inną zmienną Var jako Variant.

Kod:

 Podpróbka () Dim A jako liczba całkowita Dim B jako string Dim var As wariant A = InputBox („Enter a Value”, „wartość powinna wynosić od 1 do 5”) B = Switch (A = 1, „One”, A = 2, „Two”, A = 3, „Three”, A = 4, „Four”, A = 5, „Five”) MsgBox B End Sub 

Krok 9: Przed naszą instrukcją switch użyj instrukcji goto po błędzie, aby jeśli kod znalazł błąd, wiedział, gdzie iść.

Kod:

 Podpróbka () Dim A jako liczba całkowita Dim B jako string Dim var As wariant A = InputBox („Enter a Value”, „wartość powinna wynosić od 1 do 5”) On Error GoTo var B = Switch (A = 1, „One ”, A = 2, „ Two ”, A = 3, „ Three ”, A = 4, „ Four ”, A = 5, „ Five ”) MsgBox B End Sub 

Krok 10: Teraz zdefiniuj, co się stanie, jeśli kod napotka błąd,

Kod:

 Podpróbka () Dim A jako liczba całkowita Dim B jako string Dim var As wariant A = InputBox („Enter a Value”, „wartość powinna wynosić od 1 do 5”) On Error GoTo var B = Switch (A = 1, „One ”, A = 2, „ Two ”, A = 3, „ Three ”, A = 4, „ Four ”, A = 5, „ Five ”) MsgBox B var: MsgBox„ Wprowadziłeś niepoprawny numer ”Wznów Następny koniec Sub 

Krok 11: Teraz ponownie uruchommy kod, naciskając F5 lub klikając przycisk Play i wprowadzając wartość 6, a następnie naciśnij ok, aby zobaczyć końcowy wynik na wypadek, gdyby instrukcja switch napotkała błąd.

Przełącznik VBA - Przykład 2

W tym przykładzie mam dane w arkuszu 1, który zawiera nazwę niektórych filmów i ich czas trwania w minutach. Na podstawie ich długości chcę zdefiniować, że film jest krótki lub bardzo długi. Spójrz na poniższe dane.

Wykonaj poniższe kroki, aby użyć instrukcji Switch w programie Excel VBA:

Krok 1: Zacznijmy od tego samego modułu i zacznij od zdefiniowania innej podprocedury w następujący sposób.

 Sub Sample1 () End Sub 

Krok 2: Zadeklaruj dwie zmienne A i B, jedną jako Liczbę całkowitą, drugą jako Ciąg w następujący sposób,

 Sub Sample1 () Dim A As Integer Dim B As String End Sub 

Krok 3: Teraz w zmiennej A przechowujmy wartość długości filmu dla dowolnego z filmów.

 Sub Sample1 () Dim A As Integer Dim B As string A = Range ("A3"). Offset (0, 1). Val End End Sub 

Krok 4: Teraz w zmiennej B, użyjmy instrukcji przełączania VBA, aby zdefiniować scenariusz dla każdej długości filmu.

 Sub Sample1 () Dim A As Integer Dim B As string A = Range ("A3"). Offset (0, 1). Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ”, A <= 120, „ Long ”, A <= 150, „ Too Long ”) End Sub 

Krok 5: Co teraz, jeśli wartość jest większa niż 180, powinniśmy mieć tutaj inną procedurę obsługi błędów lub możemy po prostu napisać inne wyrażenie jako True, Value. Ponieważ wszystkie pozostałe wartości zostaną zwrócone, ponieważ fałszywy kod wykona to wyrażenie.

 Sub Sample1 () Dim A As Integer Dim B As string A = Range ("A3"). Offset (0, 1). Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ”, A <= 120, „ Long ”, A <= 150, „ Too Long ”, True, „ Boring ”) End Sub 

Krok 6: Wyświetl wartość B za pomocą funkcji msgbox.

 Sub Sample1 () Dim A As Integer Dim B As string A = Range ("A3"). Offset (0, 1). Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ”, A <= 120, „ Long ”, A <= 150, „ Too Long ”, True, „ Boring ”) MsgBox B End Sub 

Krok 7: Uruchom kod, naciskając klawisz F5 lub klikając przycisk Odtwórz i zobacz wynik.

Komórka A3 ma film 2, którego długość wynosiła 100, więc wyjście jest tak krótkie.

Przełącznik VBA - Przykład 3

Pozwól użyć instrukcji switch, aby utworzyć funkcję zdefiniowaną przez użytkownika dla powyższego przykładu, abyśmy mogli jej używać w naszym arkuszu, gdy zajdzie taka potrzeba.

Wykonaj poniższe czynności, aby użyć instrukcji Switch w programie Excel VBA:

Krok 1: W tym samym module zadeklaruj funkcję o nazwie filmlength.

 Function FilmLength (Leng As Integer) As String End Function 

Krok 2: Teraz użyj instrukcji VBA Switch, aby zdefiniować parametry na podstawie długości w następujący sposób,

 Funkcja FilmLength (Leng As Integer) As String FilmLength = Przełącznik (Leng <= 70, „Too Short”, Leng <= 100, „Short”, Leng <= 120, „Long”, Leng <= 150, „Too Long”, True, „Nudne”) Funkcja zakończenia 

Krok 3: Przejdźmy teraz do arkusza, w którym mieliśmy nasze dane, type = FilmLength (

Krok 4: Widzimy, że nasza funkcja podaje argument jako wartości w komórce B2.

Krok 5: Po zastosowaniu formuły naciśnij enter.

Krok 6: Teraz przeciągnij funkcję do komórki C10 i zobacz wynik.

Rzeczy do zapamiętania

  • Funkcja Switch ocenia zawarte w niej wyrażenie. Jeśli pierwsze wyrażenie zostanie ocenione jako prawdziwe, to nie oceni pozostałych wyrażeń.
  • Jeśli żadne z wyrażeń nie jest prawdziwe, zwraca błąd czasu wykonywania.
  • Musimy mieć moduł obsługi błędów w instrukcji lub wyrażeniu przełącznika, aby jeśli każde wyrażenie zwróciło wartość false, nie napotkamy błędu w czasie wykonywania.
  • Przełącznik jest podobny do instrukcji case case.

Polecane artykuły

To jest przewodnik po VBA Switch. Tutaj omów, jak używać instrukcji switch w VBA programu Excel wraz z praktycznymi przykładami i szablonem programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Korzystanie z funkcji VBA InStr
  2. Funkcja PRZEŁĄCZNIKA Excel
  3. Liczba losowa VBA
  4. CONCATENATE Funkcja w programie Excel