Jak zwrócić wartość z funkcji vba (z przykładami)
Aby zwrócić wartość z funkcji w VBA, należy przypisać wartość do nazwy funkcji.
Na przykład możemy utworzyć następującą funkcję dzielącą dwie wartości, a następnie zwrócić wynik podziału:
Function DivideValues(x,y)
DivideValues = x / y
End Function
Nazwa tej funkcji to DivideValues , więc aby zwrócić wartość z tej funkcji, musimy przypisać wynik x/y do zmiennej o tej samej nazwie z DivideValues .
Jeśli Twoja funkcja wykorzystuje logikę If Else , możesz wielokrotnie przypisać wartość do nazwy funkcji.
Na przykład możesz utworzyć następującą funkcję, która zwróci „Nie można dzielić przez zero”, jeśli spróbujesz podzielić przez zero, lub po prostu zwróci wynik dzielenia:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Jak zwrócić wartość z funkcji VBA
Załóżmy, że chcemy utworzyć w VBA funkcję dzielącą wartość komórki A2 przez wartość komórki B2 :
W tym celu możemy utworzyć następującą funkcję:
Function DivideValues(x,y)
DivideValues = x / y
End Function
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Funkcja zwraca wartość 5 , która jest wynikiem podzielenia liczby 50 przez 10.
Moglibyśmy również utworzyć funkcję korzystającą z logiki If Else, aby najpierw sprawdzić, czy wartość, przez którą dzielimy, nie jest równa zero:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
Jeśli zmienimy wartość w komórce B2 , a następnie skorzystamy z tej funkcji, aby wykonać dzielenie, otrzymamy następujący wynik:
Ponieważ próbowaliśmy podzielić przez zero, funkcja zwraca „Nie można dzielić przez zero”.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
Jak skomentować blok kodu w VBA
Jak sprawdzić, czy plik istnieje za pomocą VBA
Jak tworzyć foldery za pomocą VBA