Czy istnieje sposób sprawdzenia, kiedy użytkownik wprowadził zmiany w filtrze arkuszy?Filtr VBA programu Excel Zmienić moduł obsługi zdarzeń
Innymi słowy, czy istnieje jakiś uchwyt do obsługi change_filter event
?
Czy istnieje sposób sprawdzenia, kiedy użytkownik wprowadził zmiany w filtrze arkuszy?Filtr VBA programu Excel Zmienić moduł obsługi zdarzeń
Innymi słowy, czy istnieje jakiś uchwyt do obsługi change_filter event
?
Tak.
Od tego article napisałem na innym forum
1.A manekin Arkusz dodaje się jeden SUBTOTAL
formuła w A1 skierowany z powrotem do zakresu filtrowane na głównym arkuszu.
2. Wydarzenie jest dodawane do atrapa WorkSheet, to zdarzenie jest wywoływane, gdy formuła SUBTOTAL
aktualizuje się po zmianie filtru.
'Dummy sheet code
Private Sub Worksheet_Calculate()
'Dummy Sheet has recalculated
MsgBox "Your list has been filtered"
End Sub
Catering dla ręcznego obliczania
Należy zauważyć, że powyższe podejście wymaga skoroszytu Obliczanie być ustawiony na automatyczny (xlCalculationAutomatic w VBA) lub Automatic (z wyjątkiem stołów xlCalculationSemiAutomatic). Jeśli obliczono wartość Ręczny (xlCalculationManual), konieczne jest dalsze kodowanie, aby ustawić WorkBook tak, aby tylko "obojętny" arkusz roboczy był ustawiony tak, aby automatycznie obliczyć, a wszystkie pozostałe arkusze mają wyłączoną Obliczenia.
Istnieje rzadko używana właściwość WorkSheet, EnableCalculation
, którą można ustawić za pomocą edytora Visual Basic na wartość True lub False. Domyślnym ustawieniem jest oczywiście True, jeśli jest ustawione na False, wtedy arkusz kalkulacyjny nie będzie obliczał.
Właściwość EnableCalculation nie jest dostępna dla zwykłych opcji menu Excel lub opcji wstążki - tak więc może to być przydatna sztuczka dla osób, które chcą zabezpieczyć modele Excela, celowo przechowując arkusze kluczowe przed ponowną kalkulacją.
Workbook_Open
Zdarzenie, aby ustawić EnableCalculation property
wszystkich arkuszy innych niż "Dummy" na False.Z "artykuł" link powyżej, nie mogę znaleźć metody "Worksheet_Calculate()". Czy możesz dać mi lepszy link lub wyjaśnić, gdzie go znaleźć! Dziękuję Ci ! – iKK
Dzięki - udało mi się czytać raz po raz :) Działa, ale jest trochę na planie, nie sądzisz? Czy istnieje "bardziej czysty" sposób, który naprawdę wykrywa zdarzenia związane z autofiltrem? – iKK
@skuenstler Myślę, że artykuł został usunięty - zobaczy, czy mogę go przywrócić. Nie, powodem tego obejścia jest to, że nie ma bezpośredniej drogi :) – brettdj
Możliwy duplikat [Run kodu VBA automatycznie po uruchomieniu filtra] (http://stackoverflow.com/questions/12808009/run-vba-code-automatically-after-running-a-filter) –