Zmienne funkcje Excel VBA - łatwe makra Excel

Spisie treści

Domyślnie UDF (funkcje zdefiniowane przez użytkownika) w Excel VBA nie są lotne. Są one przeliczane tylko wtedy, gdy zmieni się dowolny z argumentów funkcji. A funkcja lotna zostanie ponownie obliczony za każdym razem, gdy obliczenia zostaną wykonane w dowolnych komórkach w arkuszu. Rzućmy okiem na prosty przykład, aby wyjaśnić to nieco bardziej.

1. Otwórz Edytor Visual Basic i kliknij Wstaw, Moduł.

Utwórz funkcję o nazwie MOJA FUNKCJA, która zwraca sumę wybranej komórki i komórki poniżej tej komórki.

2. Dodaj następujące linie kodu:

Funkcja MYFUNCTION(komórka jako zakres)
MOJAFUNKCJA = komórka.Wartość + komórka.Przesunięcie(1, 0).Wartość
Koniec funkcji

3. Teraz możesz korzystać z tej funkcji, tak jak z każdej innej funkcji programu Excel.

4. Jest to funkcja nieulotna. Funkcje nieulotne są ponownie obliczane tylko wtedy, gdy zmieni się dowolny z argumentów funkcji. Zmień wartość komórki B2 na 8.

5. Teraz zmień wartość komórki B3 na 11.

Objaśnienie: funkcja nieulotna nie jest obliczana ponownie, gdy zmienia się jakakolwiek inna komórka w arkuszu.

6. Zaktualizuj funkcję w następujący sposób, aby funkcja była nietrwała:

Funkcja MYFUNCTION(komórka jako zakres)
Aplikacja. Lotne
MOJAFUNKCJA = komórka.Wartość + komórka.Przesunięcie(1, 0).Wartość
Koniec funkcji

7. Zmień wartość komórki B3 na 12.

Wynik:

Uwaga: musisz ponownie wprowadzić funkcję, aby stała się niestabilna (lub odśwież ją, umieszczając kursor na pasku formuły i naciskając enter).

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave