Zawartość
Mimo że program Excel ma wiele, prawdopodobnie setki wbudowanych funkcji, takich jak SUMA, WYSZUKAJ.PIONOWO, W LEWO itd., Kiedy zaczynasz używać programu Excel do bardziej skomplikowanych zadań, często okazuje się, że potrzebujesz funkcji, która nie istnieje. Nie martw się, nie wszystko jest stracone; wszystko, czego potrzebujesz, to stworzyć żądaną funkcję.
Kroki
- Utwórz nowy skoroszyt lub otwórz skoroszyt, w którym chcesz użyć nowo utworzonej funkcji zdefiniowanej przez użytkownika (FDU).
-
Otwórz Edytor Visual Basic który jest wbudowany w Microsoft Excel, przechodząc do Narzędzia-> Makro-> Edytor Visual Basic (lub naciskając Alt + F11). -
Dodaj nowy moduł do skoroszytu, klikając wskazany przycisk. Możesz utworzyć funkcję zdefiniowaną przez użytkownika w samym arkuszu bez dodawania nowego modułu, ale uniemożliwi to używanie jej w innych arkuszach w tym samym skoroszycie. -
Utwórz „nagłówek” lub „prototyp” swojej funkcji. Musisz mieć następującą strukturę: funkcja publiczna TheNameOfYourFunction (param1 As type1, param2 As type2) As returnType Może być dowolna liczba parametrów, a ich typem może być dowolny z podstawowych typów danych lub typów obiektów programu Excel, takich jak Range. Możesz myśleć o parametrach jako o „operandach”, na których będzie działać twoja funkcja. Na przykład, kiedy powiesz SIN (45), aby obliczyć sinus 45 stopni, 45 zostanie przyjęte jako parametr. Następnie kod funkcji użyje tej wartości do wykonania obliczeń i przedstawienia wyniku. - Dodaj kod funkcji, upewniając się, że: 1) stosować wartości podane w parametrach; 2) przypisać wynik do nazwy funkcji; i 3) zamknij funkcję za pomocą „end function”. Nauka programowania w VBA lub innym języku może zająć trochę czasu i wymagać szczegółowego samouczka. Jednak funkcje często mają małe bloki kodu i wykorzystują niewiele zasobów językowych. Najbardziej przydatne elementy języka VBA to:
- Blok Gdyby, co pozwala na uruchomienie części kodu tylko wtedy, gdy zostanie spełniony warunek. Na przykład:
Funkcja publiczna CourseResult (grid As Integer) As String
Jeśli stopień> = 5 Wtedy
CourseResult = "Zatwierdzono"
Jeszcze
CourseResult = "Odrzucono"
Koniec, jeśli
Funkcja zakończenia
Zwróć uwagę na elementy w bloku kodu Gdyby:JEŚLI warunek TO kod INNY kod KONIEC JEŻELI. Słowo kluczowe Jeszcze wraz z drugą częścią kodu są opcjonalne.
- Blok Z, który wykonuje fragment kodu Podczas (podczas) lub Aż do (aż) warunek zostanie spełniony. Na przykład:
Funkcja publiczna IsPrime (wartość As Integer) As Boolean
Dim i As Integer
i = 2
IsPrime = True
Z
Jeśli wartość / i = Int (wartość / i) Wtedy
IsPrime = False
Zakończ, jeśli
i = i + 1
Loop While i <value And IsPrime = True
Funkcja zakończenia
Spójrz ponownie na elementy:DO kodu PĘTLA warunek WHILE / UNTIL. Zwróć także uwagę na drugą linię, w której zmienna jest „zadeklarowana”. Możesz dodawać zmienne do swojego kodu, aby móc ich później użyć. Zmienne pełnią rolę tymczasowych wartości w kodzie. Na koniec spójrz na deklarację funkcji jako BOOLEAN, który jest typem danych, który dopuszcza tylko wartości TRUE i FALSE. Ta metoda określania, czy liczba jest liczbą pierwszą, nie jest idealna, ale wolę to zostawić, aby kod był łatwiejszy do odczytania.
- Blok Dla, który wykonuje fragment kodu określoną liczbę razy. Na przykład:
Silnia funkcji publicznej (wartość jako liczba całkowita) As Long
Dim wynik As Long
Dim i As Integer
Jeśli wartość = 0 Wtedy
wynik = 1
ElseIf wartość = 1 Wtedy
wynik = 1
Jeszcze
wynik = 1
Dla i = 1 do wartości
wynik = wynik * i
Kolejny
Koniec, jeśli
Silnia = wynik
Funkcja zakończenia
Spójrz ponownie na elementy:FOR zmienna = dolna granica DO górnego kodu granicznego NASTĘPNY. Zwróć także uwagę na element Inaczej jeśli dodane w oświadczeniu Gdyby, co pozwala na dodanie większej liczby opcji kodu do wykonania. Na koniec spójrz na deklarację funkcji i zmienną „wynik” jako Długo. Typ danych Długo dopuszcza znacznie wyższe wartości niż „Integer”.
Poniżej znajduje się kod funkcji konwertującej liczby na słowa.
- Blok Gdyby, co pozwala na uruchomienie części kodu tylko wtedy, gdy zostanie spełniony warunek. Na przykład:
- Wróć do skoroszytu i użyj funkcji, rozpoczynając zawartość komórki od równy po którym następuje nazwa Twojej roli. Dodaj nawias otwierający do nazwy funkcji, parametry oddzielone przecinek i ostatni nawias zamykający. Na przykład:= NumberToLetters (A4) Możesz również użyć formuły zdefiniowanej przez użytkownika, wyszukując ją w kategorii Zdefiniowane przez użytkownika w kreatorze, aby wprowadzić formułę. Wystarczy kliknąć przycisk Fx znajdujący się po lewej stronie paska formuły. Parametry mogą być trzech typów:
- Stałe wartości wprowadzane bezpośrednio do formuły komórki. W tym przypadku ciągi znaków należy ująć w cudzysłowy.
- Odwołania do komórek, takie jak B6 lub interwały, takie jak A1: C3 (parametr musi być typu Przerwa"")
- Inne funkcje uporządkowane w ramach funkcji (funkcja może być również pogrupowana w ramach innych funkcji). To jest: = Silnia (MAX (D6: D8))
- Sprawdź, czy wynik jest OK po kilkukrotnym użyciu funkcji upewnij się, że poprawnie obsługuje ona różne wartości parametrów:
Porady
- Za każdym razem, gdy piszesz blok kodu w strukturze kontrolnej, takiej jak If, For, Do itp., Pamiętaj, aby wciąć blok za pomocą spacji lub tabulatorów (styl wcięcia zależy od Ciebie).W ten sposób Twój kod będzie łatwiejszy do zrozumienia i dużo łatwiej będzie wykryć błędy i ulepszyć kod.
- Program Excel ma wiele wbudowanych funkcji i większość obliczeń można wykonać, używając ich osobno lub w połączeniu. Przeszukaj listę dostępnych funkcji przed uruchomieniem własnego kodu. Wykonanie może być szybsze, jeśli używasz funkcji wbudowanych.
- Czasami funkcja może nie wymagać wszystkich parametrów do obliczenia wyniku. W takim przypadku możesz użyć słowa kluczowego Opcjonalny przed nazwą parametru w nagłówku funkcji. Możesz użyć IsMissing (nazwa_parametru) w kodzie, aby określić, czy wartość została przypisana do parametru, czy nie.
- Jeśli nie wiesz, jak napisać kod funkcji, przeczytaj artykuł Jak napisać proste makro w programie Microsoft Excel.
- Użyj nazwy, która nie została jeszcze zdefiniowana jako nazwa funkcji w programie Excel, w przeciwnym razie będziesz mógł używać tylko jednej z funkcji.
Ostrzeżenia
- Ze względów bezpieczeństwa niektóre osoby mogą wyłączać makra. Poinformuj współpracowników, że wysyłana przez Ciebie książka zawiera makra i można jej ufać, ponieważ nie uszkodzą one Twoich komputerów.
- Funkcje użyte w tym artykule nie są najlepszym sposobem rozwiązania wspomnianych problemów. Były używane tylko do wyjaśnienia użycia struktur kontroli języka.
- VBA, jak każdy inny język, ma kilka innych struktur kontrolnych oprócz Do, If i For. Zostały one wyjaśnione tutaj, aby wyjaśnić, co można zrobić w kodzie źródłowym funkcji. Dostępnych jest wiele samouczków online, w których można nauczyć się języka VBA.