napisał: Rycho postów: 291
umieszczony: 6 sierpnia 2009 01:34
|
|
Witam,
funkcja użytkownika wywołana z komórki arkusza nie może zmieniać komórek arkusza a jedynie zwrócić wartość.
Też kiedyś kombinowałem na ten temat, zanim dotarł do mnie bezsens takiego działanie, gdyby był możliwy. Nikt by nad tym nie zapanował. Już widzę jak interpreter próbuje zapanować nad kolejnością obliczeń.
Pewnie w końcu jakąś protezę bym opracował - tylko po co?
Procedury mogą zmieniać zawartość komórek. Procedura tzw. zdarzeniowa (obsługa zdarzenia) może zostać wywołana w odpowiedzi na wystąpienie jakiegoś zdarzenia (zmiana aktywnej komórki, jej zawartości, przeliczanie arkusza itd.) co powinno umożliwić wykonanie tego co chciałeś osiągnąć z poziomu funkcji.
Chyba mam deja vu lub faktycznie temat powraca co jakiś czas.
Pozdrawiam. |
|
napisał: pafcio84 postów: 1
umieszczony: 5 sierpnia 2009 23:08
|
|
Zastanawiam się jak sprawić żeby funkcja zwracała wartość do innej komórki niż ta z której została wywołana. np do tego samego wiersza ale kolumnę obok.
Do tej samej komórki nie ma problemu
Function test()
test = "nazwa"
End Function
Ale już do innej nie bardzo
Function test()
Arkusz1.Cells(1,2) = "nazwa"
End Function
Docelowo miało by to działać mniej więcej tak
Function test()
Dim x As Range
Set x=Application.Cellar
Arkusz1.Cells(x.Row,x.Column+1) 'jedna w prawo od komórki wywołania funkcji
End Function
Niestety to nie działa. Ma ktoś jakiś pomysł jak to zrobić? Czy wogóle można z poziomu funkcji modyfikować komórkę inną niż ta z której funkcja została wywołana?
Z góry dziękuje za pomoc. |
|
wstecz 1 dalej wszystkich stron: 1
|