Chociaż program Excel ma już setki wbudowanych funkcji, takich jak SUMA, WYSZUKAJ. PIONOWO, LEWO itd., dostępne funkcje wbudowane zwykle nie wystarczają do wykonywania dość złożonych zadań. Nie martw się jednak, ponieważ wystarczy samodzielnie utworzyć wymagane funkcje.
Krok

Krok 1. Utwórz nowy skoroszyt lub otwórz skoroszyt, który chcesz przetworzyć za pomocą funkcji zdefiniowanych przez użytkownika (UDF)

Krok 2. Otwórz Edytor Visual Basic w programie Microsoft Excel poprzez Narzędzia->Makro-> Edytor Visual Basic (lub naciśnij skrót Alt+F11)

Krok 3. Kliknij przycisk Moduł, aby dodać nowy moduł do arkusza roboczego
Możesz utworzyć UDF w skoroszycie bez dodawania nowego modułu, ale funkcja nie będzie działać w innych arkuszach w tym samym skoroszycie.

Krok 4. Utwórz „głową” lub „prototyp” swojej funkcji
Prototyp funkcji musi mieć następującą strukturę:
funkcja publiczna "Nazwa funkcji" (parametr1 jako typ1, parametr2 jako typ2) jako typ wyniku.
Prototypy mogą mieć jak najwięcej funkcji, a ich typami mogą być wszystkie podstawowe typy danych lub typy obiektów Excela w postaci Range. Możesz myśleć o parametrach jako o „operantach” (operatorach), na których funkcja będzie działać. Na przykład, gdy napiszesz SIN(45), aby obliczyć sinus 45 stopni, liczba 45 zostanie przyjęta jako parametr. Następnie kod funkcji użyje tych wartości do wykonania obliczeń i wyświetlenia wyników.

Krok 5. Dodaj kod funkcji, aby upewnić się, że: 1) używasz wartości podanej przez parametr; 2) przekazać wynik do nazwy funkcji; oraz 3) zamknij funkcję zdaniem „zakończ funkcję”. Nauka programowania w VBA lub w jakimkolwiek innym języku wymaga dużo czasu i szczegółowych wskazówek. Na szczęście te funkcje zwykle mają małe bloki kodu i nie wykorzystują zbyt wiele funkcji języka programowania. Oto niektóre elementy języka VBA, których można użyć:
- Blok If (if), który umożliwia wykonanie części kodu tylko wtedy, gdy warunek jest spełniony. Jako przykład:
- . Możesz pominąć słowo kluczowe Else wraz z drugą częścią kodu, ponieważ jest to opcjonalne.
- Blok Do (do), który wykonuje część kodu While lub Until, gdy warunek zostanie spełniony. Jako przykład:
- . Zwróć także uwagę na drugą linię, która "deklaruje" zmienną. Możesz dodać zmienne do kodu do późniejszego wykorzystania. Zmienne pełnią rolę wartości tymczasowych w kodzie. Na koniec rozważ deklarację funkcji jako BOOLEAN, która jest typem danych, który dopuszcza tylko wartości TRUE lub FALSE. Ta metoda wyznaczania liczb pierwszych jest daleka od optymalnej, ale kod został napisany w taki sposób, aby był łatwy do odczytania.
- Do bloku (to), który wykonuje określoną ilość kodu. Jako przykład:
- Wartość stała, która jest wpisywana bezpośrednio do formuły komórki. W takim przypadku tekst (łańcuch) musi być ujęty w cudzysłów.
- Na przykład odwołania do komórek B6 lub zakres jak A1:C3 (parametr musi być typem danych „ Zakres”)
-
Inna funkcja, która jest zawarta w twojej funkcji (twoja funkcja może być również zawarta w innej funkcji), na przykład: =Factorial(MAX(D6:D8))
Utwórz funkcję zdefiniowaną przez użytkownika w programie Microsoft Excel Krok 7 Krok 7. Upewnij się, że wyniki są prawidłowe
Użyj go kilka razy, aby upewnić się, że funkcja jest w stanie poprawnie obsługiwać różne wartości parametrów:
Porady
- Pisząc bloki kodu w strukturach kontrolnych, takich jak If, For, Do itp., upewnij się, że blok kodu został wcięty (nieznacznie wstawiony lewą ramkę wiersza do środka), naciskając kilkakrotnie spację lub tab. Dzięki temu kod będzie łatwiejszy do zrozumienia, a błędy znacznie łatwiejsze do znalezienia. Ponadto zwiększenie funkcjonalności staje się łatwiejsze do wykonania.
- Jeśli nie wiesz, jak napisać kod funkcji, przeczytaj artykuł Jak napisać proste makro w programie Microsoft Excel.
- Czasami funkcje nie potrzebują wszystkich parametrów do obliczenia wyniku. W takim przypadku możesz użyć słowa kluczowego Optional przed nazwą parametru w nagłówku funkcji. Możesz użyć funkcji IsMissing(parameter_name) w kodzie, aby określić, czy parametrowi przypisano wartość, czy nie.
- Używaj nieużywanych nazw jako funkcji w programie Excel, aby żadne funkcje nie były zastępowane ani usuwane.
- Excel ma wiele wbudowanych funkcji i większość obliczeń można wykonać za pomocą tych wbudowanych funkcji, pojedynczo lub wszystkich naraz. Upewnij się, że rzuciłeś okiem na listę dostępnych funkcji, zanim zaczniesz samodzielnie kodować. Wykonanie można wykonać szybciej, jeśli używasz wbudowanych funkcji.
Ostrzeżenie
- Ze względów bezpieczeństwa wiele osób wyłącza makra. Upewnij się, że powiadamiasz odbiorców skoroszytu, że przesłany skoroszyt zawiera makra i że te makra nie spowodują uszkodzenia ich komputerów.
- Funkcja użyta w tym artykule nie jest najlepszym sposobem rozwiązania powiązanego problemu. Przykład służy do wyjaśnienia użycia struktur kontroli języka.
- VBA, podobnie jak inne języki, ma kilka innych struktur kontrolnych oprócz Do, If i For. Omawiana tutaj struktura opisuje jedynie, co można zrobić w kodzie źródłowym funkcji. W Internecie jest wiele przewodników, które mogą pomóc w nauce VBA.
Wynik kursu funkcji publicznej (jako wartość całkowita) jako ciąg
Jeśli wartość >= 5 Wtedy
Wyniki kursu = „Zaakceptowane”
W przeciwnym razie
Wyniki kursu = „Odrzucone”
Zakończ, jeśli
Koniec funkcji
Zwróć uwagę na elementy w bloku kodu If:
IF warunek THEN kod ELSE kod END IF
Funkcja publiczna BilPrima (wartość jako liczba całkowita) jako Boolean
Dim i jako liczba całkowita
ja = 2
BilPrima = Prawda
Robić
Jeśli wartość / i = Int(wartość / i) Wtedy
BilPrima = Fałsz
Zakończ, jeśli
ja = ja + 1
Pętla While i < value And NumberPrima = True
Koniec funkcji
Spójrz ponownie na elementy:
ZRÓB kod PĘTLA PODCZAS/DO warunku
Silnia funkcji publicznej (wartość jako liczba całkowita) jako długa
Przyciemnij wyniki tak długo
Dim i jako liczba całkowita
Jeśli wartość = 0 Wtedy
wynik = 1
Wartość ElseIf = 1 Wtedy
wynik = 1
W przeciwnym razie
wynik = 1
Dla i = 1 Do wartości
wynik= wynik * i
Następny
Zakończ, jeśli
Silnia = wynik
Koniec funkcji
Spójrz ponownie na elementy:
FOR zmienna = dolna granica TO górna granica kodu NEXT
. Zwróć także uwagę na dodatkowy element ElseIf w instrukcji If, który umożliwia dodanie większej liczby opcji do wykonywanego kodu. Na koniec rozważmy funkcję „wynik” i zmienną zadeklarowaną jako Long. Typ danych Long dopuszcza znacznie większe wartości niż Integer.
Poniżej przedstawiono kod funkcji, która zamienia małe liczby na słowa.

Krok 6. Wróć do skoroszytu i użyj funkcji, wpisując symbol „równa się” (=), a następnie nazwę funkcji w komórce
Wpisz nawiasy otwierające („(”) po nazwie funkcji, używając znaku śpiączka aby oddzielić parametry i zakończyć nawiasami zamykającymi („)”). Jako przykład:
=LiczbaDoLitery(A4)
. Możesz również skorzystać z domowych receptur, wyszukując je w kategoriach Określony przez użytkownika wewnątrz opcji Wstaw formułę. Wystarczy kliknąć przycisk Fx po lewej stronie paska formuły. W funkcjach występują trzy typy formularzy parametrów: