Pytanie użytkownika – funkcja UDF

Jeden z czytelników zadał mi niedawno pytanie:

W Excelu utworzyłem moduł MODULE1 w nim Funkcja
w której tylko jedna instrukcja

Range(„A1″).value = 15
Pojawia się bład ” #ARG! ”
skad to ?
Jest to EXCEL 2007.

Funkcje UDF (User Defined Function, Funkcje zdefiniowane przez użytkownika) rozszerzają możliwości naszych formuł. Tak jak standardowe funkcje, przyjmują one jakieś argumenty (lub nie) i zawsze zwracają dokładnie jedną wartość.

Funckję UDF pisze się tak jak standardowe funkcje VBA. Muszą jednak spełniać szereg warunków, aby działały prawidłowo w formułach.

  • Muszą być napisane ręcznie w module, nie można ich nagrać.
  • Nie mogą zmieniać struktury komórki, arkusza, ani pliku. Nawet komórki, w którą została wpisana.
  • Nie mogą zmieniać zawartości komórek inaczej niż przez zwrócenie wartości.
  • Funkcje UDF mogą wywoływać inne procedury, jednak podlegają one wtedy tym samym ograniczeniom.
Podsumowując, mogą jedynie zmieniać argumenty w wartość zwracaną.
Jak widać jedyna instrukcja w powyższej funkcji jest problemem. Funkcja UDF nie może bezpośrednio zmieniać wartości komórek. Nie ma na to absolutnie żadnego obejścia ani tricku.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *