Poniżej przyjrzymy się programowi w Excel VBA który tworzy Funkcja zdefiniowana przez użytkownika. Excel ma duży zbiór funkcji. W większości sytuacji te funkcje są wystarczające do wykonania zadania. Jeśli nie, możesz utworzyć własną funkcję o nazwie Funkcja zdefiniowana przez użytkownika lub niestandardowa funkcja Excela. Możesz uzyskać dostęp do funkcji zdefiniowanej przez użytkownika, tak jak do każdej innej funkcji programu Excel.
Chcemy stworzyć funkcję o nazwie SUMEVENNUMBERS, która znajduje sumę parzystych liczb z losowo wybranego zakresu.
Sytuacja:
Funkcje zdefiniowane przez użytkownika należy umieścić w module.
1. Otwórz Edytor Visual Basic i kliknij Wstaw, Moduł.
2. Dodaj następującą linię kodu:
Funkcja SUMEVENNUMBERS(rng jako zakres)
Nazwa naszej funkcji to SUMEVENNUMBERS. Część między nawiasami oznacza, że jako dane wejściowe podajemy Excel VBA zakres. Nazywamy nasz asortyment rng, ale możesz użyć dowolnej nazwy.
3. Następnie deklarujemy obiekt Range i nazywamy go komórką.
Przyciemnij komórkę jako zakres
4. Chcemy sprawdzić każdą komórkę w losowo wybranym zakresie (ten zakres może mieć dowolny rozmiar). W Excel VBA możesz użyć do tego pętli For Each Next. Dodaj następujące wiersze kodu:
Dla każdej komórki w rng
Następna komórka
Uwaga: komórka jest tutaj wybierana losowo, możesz użyć dowolnej nazwy.
5. Następnie sprawdzamy dla każdej wartości w tym zakresie, czy jest parzysta, czy nie. Używamy do tego operatora Mod. Operator Mod podaje pozostałą część dywizji. Na przykład 7 mod 2 = 1, ponieważ 7 podzielone przez 2 równa się 3, a reszta równa 1. Powiedziawszy to, łatwo jest sprawdzić, czy liczba jest parzysta, czy nie. Tylko jeśli reszta liczby podzielona przez 2 wynosi 0, liczba jest parzysta. Na przykład 8 mod 2 = 0, ponieważ 8 podzielone przez 2 równa się 4, a reszta równa 0. Dodaj następującą instrukcję If do pętli For Each Next.
Jeśli komórka.Wartość Mod 2 = 0 Wtedy
Zakończ, jeśli
6. Tylko jeśli to stwierdzenie jest prawdziwe, dodajemy wartość do SUMEVENNUMBERS. Dodaj następujący wiersz kodu w instrukcji If.
SUMEVENNUMBERS = SUMEVENNUMBERS + komórka.Wartość
7. Nie zapomnij zakończyć funkcji (poza pętlą).
Koniec funkcji
8. Teraz możesz użyć tej funkcji, podobnie jak każdej innej funkcji Excela, aby znaleźć sumę liczb parzystych z losowo wybranego zakresu.
Wynik:
Dobrze zrobiony! Tak proste są funkcje zdefiniowane przez użytkownika w Excel VBA. Uwaga: ta funkcja jest dostępna tylko w tym skoroszycie.