Ten samouczek pokaże, jak odświeżyć tabelę przestawną lub wszystkie tabele przestawne przy użyciu języka VBA.
Tabele przestawne to wyjątkowo potężne narzędzie do obsługi danych w programie Excel. Tabele przestawne pozwalają nam analizować i interpretować duże ilości danych poprzez grupowanie i podsumowywanie pól i wierszy.
Kiedy tworzymy tabelę przestawną, dane są przechowywane w tak zwanej pamięci podręcznej tabeli przestawnej. Dane są zatem przechowywane w pamięci podręcznej komputera, co przyspiesza działanie tabeli przestawnej.
Jeśli źródło danych tabeli przestawnej zostanie zaktualizowane, sama tabela przestawna nie zostanie zaktualizowana. Użytkownik w programie Excel musi kliknąć Odśwież wszystko na karcie Dane na Wstążce, aby odświeżyć dane źródłowe tabeli przestawnej.
Alternatywnie możemy napisać makra w VBA, które zaktualizują dane za nas!
Odśwież wszystkie połączenia danych
Najprostszą metodą odświeżenia danych jest użycie VBA do naśladowania tego, co Odśwież wszystko przycisk robi na Wstążce.
123 | Sub OdświeżPołączenia()ActiveWorkbook.RefreshAllNapis końcowy |
Ta metoda odświeży wszystkie połączenia z dowolnymi danymi w skoroszycie, które są aktywne. Nie tylko odświeży pojedynczą tabelę przestawną, ale odświeży wiele tabel przestawnych, jeśli masz więcej niż jedną połączoną z różnymi zestawami danych.
Odśwież wszystkie tabele przestawne
Aby odświeżyć tylko tabele przestawne w naszym skoroszycie, ale wykluczyć wszelkie inne połączenia danych, możemy użyć metody o nazwie OdświeżTabelę.
Jeśli w naszym skoroszycie mamy wiele tabel przestawnych, musielibyśmy przejść przez wszystkie tabele przestawne w celu odświeżenia ich wszystkich. W tym celu najpierw deklarujemy zmienną tabeli przestawnej, a następnie tworzymy pętlę For Each, która przechodzi przez wszystkie tabele przestawne w aktywnym skoroszycie.
123456 | Sub tylko odświeżanie Pivots()Dim tblPivot As PivotTableDla każdego tblPivot w ActiveWorkbook.PivotTablestblPivot.RefreshTableNastępna tabelaPivotNapis końcowy |
Możemy użyć podobnego makra do odświeżenia tabel przestawnych w naszym Aktywny arkusz zamiast całego skoroszytu. Następnie przejrzelibyśmy tabele przestawne w Aktywny arkusz niż Aktywny zeszyt.
123456 | Sub RefreshActiveSheetPivotsOnly()Dim tblPivot As PivotTableDla każdego tblPivot w ActiveSheet.PivotTablestblPivot.RefreshTableNastępna tabelaPivotNapis końcowy |
To makro byłoby najbardziej przydatne, gdybyśmy mieli do niego łatwy dostęp na naszym Aktywny arkusz. W tym celu możemy stworzyć na arkuszu przycisk do uruchomienia makra.
Odśwież jedną tabelę przestawną
Jeśli chcemy tylko odświeżyć tabelę przestawną, nad którą pracujemy, a nie wszystkie inne tabele przestawne w skoroszycie, musimy zidentyfikować konkretną tabelę przestawną. Oczywiście tak długo, jak znasz nazwę tabeli przestawnej – w tym przypadku Tabela przestawna1.
123 | Podrzędna tabela odświeżaniaActiveSheet.PivotTables("Tabela przestawna1").RefreshTableNapis końcowy |
Odświeżanie pamięci podręcznej tabeli przestawnej
Jeśli w naszym skoroszycie mamy wiele tabel przestawnych, ale wszystkie używają tych samych danych, możemy odświeżyć pamięć podręczną tabeli przestawnej zamiast odświeżać rzeczywistą tabelę przestawną. Odświeżenie pamięci podręcznej spowoduje automatyczne odświeżenie wszystkich tabel przestawnych korzystających z danych zawartych w pamięci podręcznej.
123456 | Sub RefreshCache()Dim chPivot As PivotCacheDla każdego chPivot w ActiveWorkbook.PivotCacheschPivot.RefreshNastępny chPivotNapis końcowy |