Spis treści
Dzisiaj będziemy kontynuować odkrywanie niestandardowych funkcji Excela. Ponieważ wiesz już, jak tworzyć UDF (i, mam nadzieję, próbowałeś również zastosować je w swoim Excelu), wykopmy trochę głębiej i dowiedzmy się, jak używać i przechowywać funkcje zdefiniowane przez użytkownika w Excelu.
Ponadto pokażemy Ci, jak łatwo zapisać funkcje w pliku dodatku do Excela, aby później użyć ich w kilku kliknięciach.
A więc, oto o czym będziemy rozmawiać:
Różne sposoby wykorzystania FROM w Excelu
Używanie FROM w arkuszach
Po sprawdzeniu, że Twoje FROM-y działają poprawnie, możesz je wykorzystać w formułach Excela lub w kodzie VBA.
Funkcje niestandardowe w skoroszycie programu Excel można stosować w taki sam sposób, jak zwykłe funkcje. Na przykład wystarczy napisać w komórce poniższą formułę:
= GetMaxBetween(A1:A6,10,50)
UDF może być używany w połączeniu z regularnymi funkcjami. Na przykład dodaj tekst do obliczonej wartości maksymalnej:
= CONCATENATE("Maksymalna wartość pomiędzy 10 a 50 wynosi ", GetMaxBetween(A1: A6,10,50))
Wynik możesz zobaczyć na poniższym zrzucie ekranu:
Można znaleźć liczbę, która jest jednocześnie maksymalna i znajduje się w przedziale od 10 do 50.
Sprawdźmy jeszcze jedną formułę:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)),.
Funkcja niestandardowa GetMaxBetween sprawdza zakres B2:B9 i znajduje maksymalną liczbę pomiędzy 10 a 50. Następnie, używając INDEKSU + MATCH, otrzymujemy nazwę produktu, która pasuje do tej maksymalnej wartości:
Jak widać, korzystanie z funkcji niestandardowych nie różni się zbytnio od zwykłych funkcji Excela.
Robiąc to, pamiętaj, że funkcja zdefiniowana przez użytkownika może zwrócić tylko wartość, ale nie może wykonać żadnych innych działań. Przeczytaj więcej o ograniczeniach funkcji zdefiniowanych przez użytkownika.
Używanie UDF w procedurach i funkcjach VBA
FROMy mogą być również wykorzystywane w makrach VBA. Poniżej widać kod makra, które szuka maksymalnej wartości w zakresie od 10 do 50 w kolumnie zawierającej aktywną komórkę.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range(Cells(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells, 10, 50) i = Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubKod makra zawiera funkcję własną
GetMaxBetween(.Cells, 10, 50)
Znajduje maksymalną wartość w aktywnej kolumnie. Ta wartość zostanie wtedy podświetlona. Wynik działania makra można zobaczyć na poniższym zrzucie ekranu.
Funkcja niestandardowa może być również używana wewnątrz innej funkcji niestandardowej. Wcześniej na naszym blogu przyjrzeliśmy się problemowi konwersji liczby na tekst przy użyciu funkcji niestandardowej o nazwie SpellNumber .
Z jego pomocą możemy uzyskać maksymalną wartość z danego zakresu i od razu zapisać ją jako tekst.
Aby to zrobić, stworzymy nową funkcję niestandardową, w której wykorzystamy funkcje GetMaxBetween oraz SpellNumber które są nam już znane.
Function SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End FunctionJak widać, GetMaxBetween Funkcja jest argumentem dla innej funkcji niestandardowej, SpellNumber Określa maksymalną wartość, jak to już wielokrotnie robiliśmy. Ta liczba jest następnie konwertowana na tekst.
Na powyższym zrzucie ekranu widać, jak SpellGetMaxBetween Funkcja znajduje maksymalną liczbę pomiędzy 100 a 500, a następnie konwertuje ją na tekst.
Wywoływanie FROM z innych skoroszytów
Jeśli utworzyłeś FROM w swoim skoroszycie, to niestety nie oznacza to, że nie napotkasz żadnych problemów.
Z mojego doświadczenia wynika, że większość użytkowników prędzej czy później tworzy swoje osobiste zbiory makr i funkcji niestandardowych, które służą do automatyzacji poszczególnych procesów i obliczeń. I tu pojawia się problem - kod funkcji zdefiniowanych przez użytkownika w Visual Basicu musi być gdzieś przechowywany, aby można było go później wykorzystać w pracy.
Aby zastosować funkcję niestandardową, w Twoim Excelu musi być otwarty skoroszyt, w którym ją zapisałeś. Jeśli tak nie jest, to przy próbie jej użycia otrzymasz błąd #NAME! Ten błąd wskazuje, że Excel nie zna nazwy funkcji, której chcesz użyć w formule.
Przyjrzyjmy się sposobom, w jakie można wykorzystać tworzone funkcje niestandardowe.
Metoda 1. Dodaj nazwę skoroszytu do funkcji
Przed nazwą funkcji możesz podać nazwę skoroszytu, w którym się ona znajduje. Na przykład, jeśli zapisałeś funkcję własną GetMaxBetween() w skoroszycie o nazwie My_Functions.xlsm , to należy wprowadzić następujący wzór:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Metoda 2. Przechowuj wszystkie UDF w jednym wspólnym pliku
Zapisz wszystkie funkcje niestandardowe w jednym specjalnym skoroszycie (na przykład, My_Functions.xlsm ) i skopiuj z niego pożądaną funkcję do bieżącego skoroszytu, jeśli to konieczne.
Za każdym razem, gdy tworzysz nową funkcję niestandardową, musisz powielić jej kod w skoroszycie, w którym będziesz jej używać. Przy tej metodzie może pojawić się kilka niedogodności:
- Jeśli istnieje wiele plików roboczych, a funkcja jest potrzebna wszędzie, to kod będzie musiał być skopiowany do każdej książki.
- Pamiętaj, aby zapisać skoroszyt w formacie obsługującym makra (.xlsm lub .xlsb).
- Podczas otwierania takiego pliku ochrona przed makrami będzie za każdym razem wyświetlać ostrzeżenie, które należy potwierdzić. Wielu użytkowników przestraszy się, gdy zobaczy ostrzeżenie z żółtym paskiem, które prosi o włączenie makr. Aby nie widzieć tego komunikatu, należy całkowicie wyłączyć ochronę Excela. Jednak nie zawsze może to być poprawne i bezpieczne.
Myślę, że zgodzisz się ze mną, że cały czas otwieranie pliku i kopiowanie z niego kodu funkcji zdefiniowanych przez użytkownika lub wpisywanie nazwy tego pliku w formule nie jest najlepszym rozwiązaniem. tym samym doszliśmy do trzeciego sposobu.
Metoda 3. Utworzenie pliku dodatku do programu Excel
Myślę, że najlepszym sposobem jest przechowywanie często używanych funkcji niestandardowych w pliku dodatku do programu Excel Zalety korzystania z dodatku:
- Wystarczy, że raz podłączysz dodatek do Excela, a potem możesz korzystać z jego procedur i funkcji w dowolnym pliku na tym komputerze. Nie musisz zapisywać swoich skoroszytów w formatach .xlsm i .xlsb, ponieważ kod źródłowy nie będzie w nich przechowywany, lecz w pliku dodatku.
- Nie będzie już przeszkadzać Ci ochrona makr, ponieważ dodatki zawsze odwołują się do zaufanych źródeł.
- Dodatek jest osobnym plikiem, łatwo go przenieść z komputera na komputer, udostępnić współpracownikom.
Więcej o tworzeniu i używaniu dodatków powiemy później.
Używanie dodatków do przechowywania funkcji niestandardowych
Jak stworzyć własny dodatek? Przejdźmy przez ten proces krok po kroku.
Krok 1. Tworzenie pliku dodatku
Otwórz program Microsoft Excel, utwórz nowy skoroszyt i zapisz go pod dowolną, odpowiednią nazwą (na przykład Moje_funkcje) w formacie dodatku.Aby to zrobić, użyj menu Plik - Zapisz jako lub klawisz F12. Pamiętaj, aby określić typ pliku Dodatek do programu Excel :
Twój dodatek będzie miał rozszerzenie .xlam.
Wskazówka Należy pamiętać, że domyślnie Excel przechowuje dodatki w. C:\NUżytkownicy \NTwoja nazwa \NApdata \NMicrosoft \NPrzypisy Zalecam zaakceptowanie domyślnej lokalizacji. Jeśli chcesz, możesz wskazać dowolny inny folder. Jednak wtedy przy podłączaniu dodatku będziesz musiał ręcznie znaleźć i określić jego nową lokalizację. Jeśli zapiszesz go w domyślnym folderze, nie będziesz musiał szukać dodatku na swoim komputerze. Excel automatycznie umieści go na liście.
Krok 2. Podłączenie pliku add-in
Teraz utworzony przez nas dodatek musi zostać podłączony do Excela. Wtedy zostanie załadowany automatycznie podczas uruchamiania programu.Aby to zrobić, należy użyć menu Plik - Opcje - Dodatki . Make sure Dodatki do programu Excel jest wybrany w Zarządzaj Kliknij na Wejdź na stronę W wyświetlonym oknie zaznacz nasz dodatek My_Functions. Jeśli nie widzisz go na liście, kliknij przycisk Przeglądaj i przejdź do miejsca, w którym znajduje się plik dodatku.
Jeśli używasz dodatku do przechowywania funkcji niestandardowych, istnieje jedna prosta zasada, której należy przestrzegać. Jeśli przekazujesz skoroszyt innym osobom, upewnij się, że przekazujesz również kopię dodatku, który zawiera pożądaną przez Ciebie funkcjonalność. Powinny one podłączyć go w taki sam sposób, jak zrobiłeś to teraz.
Krok 3. Dodaj do dodatku niestandardowe funkcje i makra
Nasz dodatek jest podłączony do Excela, ale nie ma jeszcze żadnej funkcjonalności. Aby dodać do niego nowe UDF-y, otwórz Edytor Visual Basic, naciskając Alt + F11 . Następnie możesz dodać nowe moduły za pomocą kodu VBA, jak opisałem w moim tutorialu Tworzenie UDF-ów.
Wybierz swój plik dodatku ( My_Finctions.xlam ) w oknie VBAProject.Użyj Wkładka - moduł menu, aby dodać moduł niestandardowy. Musisz napisać do niego niestandardowe funkcje.
Możesz wpisać kod funkcji zdefiniowanej przez użytkownika ręcznie lub skopiować go skądś.
To wszystko, teraz stworzyłeś swój własny dodatek, dodałeś go do Excela i możesz używać w nim FROM. Jeśli chcesz używać więcej FROM, wystarczy napisać kod w module dodatku w edytorze VBA i zapisać go.
To wszystko na dziś, dowiedzieliśmy się jak używać funkcji zdefiniowanych przez użytkownika w swoim skoroszycie. Mamy szczerą nadzieję, że te wskazówki okażą się pomocne. Jeśli masz jakieś pytania, napisz w komentarzach do tego artykułu.