Denne vejledning viser, hvordan du opdaterer et pivottabel eller alle pivottabeller ved hjælp af VBA.
Pivottabeller er et usædvanligt kraftfuldt dataværktøj i Excel. Pivottabeller gør det muligt for os at analysere og fortolke store datamængder ved at gruppere og opsummere felter og rækker.
Når vi opretter en pivottabel, gemmes dataene i det, der kaldes en pivottabelcache. Dataene gemmes derfor i cachens hukommelse på pc'en, hvilket fremskynder Pivot -tabellen.
Hvis datakilden i pivottabellen opdateres, opdateres selve pivottabellen ikke. Brugeren i Excel skal klikke på Opdater alle på fanen Data på båndet for at opdatere kildedataene i pivottabellen.
Alternativt kan vi skrive makroer i VBA, som opdaterer dataene for os!
Opdater alle dataforbindelser
Den mest enkle metode til at opdatere data er at bruge VBA til at efterligne, hvad Opdater alle knappen gør på båndet.
123 | Sub RefreshConnections ()ActiveWorkbook.RefreshAllAfslut Sub |
Denne metode opdaterer alle forbindelser til alle data i projektmappen, som du har aktiv. Det vil heller ikke bare opdatere et enkelt pivottabel, men det vil opdatere flere pivottabeller, hvis du har mere end et forbundet til forskellige datasæt.
Opdater alle pivottabeller
For at opdatere bare pivottabellerne i vores projektmappe, men ekskludere andre dataforbindelser, kan vi bruge en metode kaldet Opdater tabel.
Hvis vi har flere pivottabeller i vores projektmappe, skal vi gennemgå alle pivottabellerne for at opdatere dem alle. For at gøre dette erklærer vi først en variabel i pivottabellen og opretter derefter en for hver sløjfe, der skal gå gennem alle pivottabellerne i den aktive projektmappe.
123456 | Sub RefreshPivotsOnly ()Dim tblPivot som pivottabelFor hver tblPivot i ActiveWorkbook.PivotTablestblPivot.RefreshTableNæste tblPivotAfslut Sub |
Vi kan bruge en lignende makro til at opdatere pivottabellerne i vores Aktivt ark frem for hele projektmappen. Vi ville derefter gå gennem pivottabellerne i ActiveSheet frem for ActiveWorkbook.
123456 | Sub RefreshActiveSheetPivotsOnly ()Dim tblPivot som pivottabelFor hver tblPivot i ActiveSheet.PivotTablestblPivot.RefreshTableNæste tblPivotAfslut Sub |
Denne makro ville være mest nyttig, hvis vi havde let adgang til den på vores ActiveSheet. For at gøre dette kan vi oprette en knap på arket for at køre makroen.
Opdater et pivottabel
Hvis vi bare vil opdatere pivottabellen, vi arbejder på og ikke alle de andre pivottabeller i projektmappen, skal vi identificere den specifikke pivottabel. Dette er selvfølgelig, så længe du kender navnet på pivottabellen - i dette tilfælde Pivottabel1.
123 | Sub RefreshOneTableActiveSheet.PivotTables ("PivotTable1"). RefreshTableAfslut Sub |
Opdaterer pivottabelcachen
Hvis vi har flere pivottabeller i vores projektmappe, men de alle bruger de samme data, kan vi opdatere pivottabellens cache frem for at opdatere den faktiske pivottabel. Opdatering af cachen opdaterer derefter automatisk alle pivottabellerne, der bruger dataene i cachen.
123456 | Sub RefreshCache ()Dim chPivot som PivotCacheFor hver chPivot i ActiveWorkbook.PivotCacheschPivot.RefreshNæste chPivotAfslut Sub |