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 email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *