/ / Excel VBA Function and Sub

Excel VBA Function and Sub

Funkcjonować | Pod

Różnica między funkcjonować i a pod w Excel VBA jest to, że funkcja może zwrócić wartość, podczas gdy jednostka podrzędna nie może. Funkcje i podsłuch stają się bardzo przydatne w miarę wzrostu rozmiaru programu.

Funkcjonować

Jeśli chcesz, aby Excel VBA wykonał zadanie, którezwraca wynik, możesz użyć funkcji. Umieść funkcję w module (w Edytorze Visual Basic kliknij Wstaw, Moduł). Na przykład funkcja o nazwie Area.

Function Area(x As Double, y As Double) As Double

Area = x * y

End Function

Wyjaśnienie: Ta funkcja ma dwa argumenty (typu Double) i typ zwracany (część za As typu double). Możesz użyć nazwy funkcji (Area) w swoim kodzie, aby wskazać wynik, który chcesz zwrócić (tutaj x * y).

Możesz teraz odwołać się do tej funkcji (innymi słowy wywołać funkcję) z innego miejsca w kodzie, używając po prostu nazwy funkcji i podając wartość dla każdego argumentu.

Umieść przycisk polecenia w arkuszu i dodaj następujące wiersze kodu:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Wyjaśnienie: Funkcja zwraca wartość, więc musisz "złapać" tę wartość w swoim kodzie. Możesz użyć do tego innej zmiennej (z). Następnie możesz dodać inną wartość do tej zmiennej (jeśli chcesz). Na koniec wyświetl wartość za pomocą MsgBox.

Wynik po kliknięciu przycisku polecenia na arkuszu:

Wynik funkcji VBA Excela

Pod

Jeśli chcesz, aby Excel VBA wykonywał niektóre akcje, możesz użyć sub. Umieść subę w module (w Edytorze Visual Basic kliknij Insert, Module). Na przykład sub z nazwą Area.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Wyjaśnienie: Ten podrzędny ma dwa argumenty (typu Double). Nie ma typu zwrotu! Możesz odwołać się do tego sub (wywołanie sub) z innego miejsca w kodzie, używając po prostu nazwy sub i podając wartość dla każdego argumentu.

Umieść przycisk polecenia w arkuszu i dodaj następującą linię kodu:

Area 3, 5

Wynik po kliknięciu przycisku polecenia na arkuszu:

Excel Sub Wynik VBA

Czy widzisz różnicę między funkcjąi okręt podwodny? Funkcja zwróciła wartość 15. Dodaliśmy wartość 2 do tego wyniku i wyświetliliśmy wynik końcowy. Kiedy zadzwoniliśmy do sub, nie mieliśmy więcej kontroli nad wynikiem (15), ponieważ sub nie może zwrócić wartości!

Przeczytaj również: