Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

Funkcje niestandardowe - Funkcja zdefiniowana nie działa po uruchomieniu makra

Wojtek_G78 13 Gru 2016 18:01
  • #1 13 Gru 2016 18:01
    Wojtek_G78
    Poziom 4  

    Dzień dobry,
    Kolejny raz mam problem z funkcja niestandardową.
    Zrobiłem funkcję zwracającą wiek na podstawie PESELa, ładnie działa, w kilku arkuszach. Wiek jest obliczony w arkuszu"pacjent" [E6], potem zwracana wartość jest pobierana do "żywienie", "SOFA", "APACHE II..."
    Niestety po uruchomieniu pewnego makra w arkuszu "żywienie" automatycznie wpisującego wyniki z arkusza "pacjent" do arkusza "żywienie"
    (III część tabeli na dole),
    w komórce z ww. funkcją pojawia się błąd #ARG! Sytuacja się poprawia, gdy na nowo zatwierdzę tę funkcję enterem...

    Proszę o pomoc, chciałbym wyeliminować ten błąd.

    PS makro uruchamiamy klikając na datę w III części tabeli.

  • #2 13 Gru 2016 19:25
    JRV
    Specjalista - VBA, Excel

    Spróbuj w pierwszym wierszu funkcji 'oblicz_wiek(pesel)' wpisać Application.Volatile

  • #3 14 Gru 2016 14:34
    Wojtek_G78
    Poziom 4  

    JRV napisał:
    Spróbuj w pierwszym wierszu funkcji 'oblicz_wiek(pesel)' wpisać Application.Volatile


    niestety... nie pomogło
    albo chodzi po wciśnięciu klawisza enter (zatwierdzeniu ponownym funkcji) albo po F9...

    Może trzeba zapisać tą funkcję w folderze makr osobistych???

  • Pomocny post
    #4 15 Gru 2016 12:28
    Maciej Gonet
    Poziom 30  

    Moim zdaniem przyczyną problemu jest brak kwalifikowanego adresu komórki w funkcji umieszczonej w module ogólnym. Range("Q5") odwołuje się do komórki Q5 w arkuszu aktywnym. Jeśli przejdziemy do innego arkusza niż "pacjent", a funkcja się przeliczy, to będzie chciała pobrać dane z komórki Q5 w aktualnie aktywnym arkuszu, a tam ich nie znajdzie, więc zwróci błąd. Należy więc zmienić odwołanie na Range("pacjent!Q5") albo Arkusz5.Range("Q5") albo Worksheets("pacjent").Range("Q5") albo coś równoważnego.

  • #5 09 Sty 2017 17:50
    Wojtek_G78
    Poziom 4  

    Czołem!

    Bardzo dziękuję, problem rozwiązany. Nie tylko w tym projekcie z resztą...

    Pozdrowienia.

  Szukaj w 4mln produktów
Przeglądaj produkty