Funkcja VBA Switch()

Funkcja VBA Switch() wyszukuje pierwsze wyrażenie z listy argumentów, które jest Prawdą i zwraca przypisaną do niego wartość.

kliknij, aby powiększyć

Teoretycznie – funkcja ta jest odpowiednikiem w VBA funkcji Excela Przełącz(),  ale nie jest to dokładnie taka sama funkcja. Nie ma tu wartości domyślnej, a jeżeli żaden z warunków nie jest spełniony, funkcja w VBA zwraca Null – czyli wartość (a właściwie brak wartości) zupełnie nieznaną w Excelu, ale często występującą w bazach danych (w Accessie również). 
No i jest jeszcze jedna, wręcz kluczowa różnica odróżniająca obie te funkcje: w funkcji Przełącz() jest jedna zmienna, która może przyjmować różne wartości i zwracać przypisane do niej wartości. W funkcji Switch – w każdym kroku może to być inny warunek. 

Argumenty funkcji to pary:

    • Arg1 (i kolejne nieparzyste)– warunek do sprawdzenia zwracajacy 
    • Arg2 (i kolejne parzyste) -wartość lub kryterium, która musi być spełnione, aby  komórka była liczona.

itd. 

Przykład wykorzystania może wyglądać tak: 

W kodzie VBA funkcja wygląda tak:

Public Function FunkcjaSwitchVBA(A, B, C)
Dim Wynik
Wynik = Switch(a < 0, „ujemna”, B > a, „rośnie”, C > 5, „powyzej 5”)
If IsNull(Wynik) Then
FunkcjaSwitchVBA = „Brak wyniku”
Else
FunkcjaSwitchVBA = Wynik
End If
End Function

Warunek If IsNull(Wynik) Then … dołożyłam tu dlatego, żeby jednoznacznie otrzymać wiarygodny wynik. Bez tego warunku, w przypadku, gdyby wszystkie warunki miałyby wartość False – w komórce Excela widoczne było zero. A zero to też wartość. 



A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *