Proporcjonalna czcionka Temat: [Excel] Jak wymusić przeliczenie arkusza?
Autor: eml Data: 07 Kwi 2008
Odwołania:
Witam! problem jest następujący. Stworzyłem sobie funkcję podobną do SUMY.POŚREDNIE(109,..) z tym, ze uwzględnia ukryte kolumny (a nie tylko wiersze jak SUMY.POŚREDNIE) i sumuje wartości tylko z widocznych komórek. Mechanim funkcji jest bardzo siermiężny: można podać tylko adresy pojedyńczych komórek (baz zakresów) a sam silnik składa sie z wielu linijek If a3.EntireColumn.Hidden = False Then c = c + a3 a3 to jeden z argumentów funkcji c to zmienna przechowująca wynik funkcji I tu pytania: 1. Załóżmy, że kolejne argumenty funkcji można sprawdzać za pomoca pętli FOR EACH a(n) IN... Czy argumenty funkcji tworzą jakąś grupę obiektów na której można wykonać taką operację? 2. Jak wymusić przeliczenie arkusza po odkryciu/ukryciu komórek będących argumentami funkcji? Od razu powiem, że kod np. Me.UsedRange.Columns("HL:HM").Calculate czy krócej Columns("HL:HM").Calculate umieszczony w arkuszu pod zdarzeniem worksheet_change nie działa (w kolumnach HL i HM są wpisane moje funkcje). Makro jest OK, ale te komórki i tak się nie przeliczają Jak zapewne nie wszyscy wiedzą, Excel przelicza tylko te komórki w których dokonano zmian lub których wynik może ulec zmianie w wyniku wprowadzenia zmian do innych komórek (poprzedniczek). Trochę zagmatywałem ;-) Inaczej mówiąć: jeżeli w komórce A1 masz formułę " =A2+A3 " i nie wprowadzałeś żadnych zmian do komórek A1, A2 ani A3 to możesz sobie wciskać F9 do woli, pisać Calculate w VBA itp a komórka A1 i tak nie będzie uwzględniona w przeliczaniu. Ma to przyspieszyć wykonywanie obliczeń przez program, Jednak w przypadku mojej funkcji notuję dzięki temu pełną porażkę. W moim arkuszu nie zmienia się zawartość komórki zawierającej funkcję, ani komórek poprzedniczek, Są one jedynie odkrywane albo ukrywane. I ma to mieć wpływ na wynik funkcji. Jak więc zmusić arkusz do przeliczenia tych komórek? POMOCY! emel