VBA - Oppdater pivottabell / alle pivottabeller

Denne opplæringen vil demonstrere hvordan du oppdaterer et pivottabell eller alle pivottabeller ved hjelp av VBA.

Pivottabeller er et eksepsjonelt kraftig dataverktøy i Excel. Pivottabeller lar oss analysere og tolke store datamengder ved å gruppere og oppsummere felt og rader.

Når vi oppretter en pivottabell, lagres dataene i det som kalles en pivottabellbuffer. Dataene blir derfor lagret i hurtigbufferminnet på PC -en som øker hastigheten på pivottabellen.

Hvis datakilden til pivottabellen oppdateres, oppdateres ikke selve pivottabellen. Brukeren i Excel må klikke på Oppdater alle -knappen i Data -fanen på båndet for å oppdatere kildedataene i pivottabellen.

Alternativt kan vi skrive makroer i VBA som oppdaterer dataene for oss!

Oppdater alle datatilkoblinger

Den enkleste metoden for å oppdatere dataene er å bruke VBA for å etterligne hva Oppdater alle knappen på båndet.

123 Sub RefreshConnections ()ActiveWorkbook.RefreshAllSlutt Sub

Denne metoden vil oppdatere alle tilkoblinger til alle dataene i arbeidsboken du har aktiv. Det vil heller ikke bare oppdatere et enkelt pivottabell, men det vil oppdatere flere pivottabeller hvis du har mer enn ett koblet til forskjellige datasett.

Oppdater alle pivottabeller

For å oppdatere bare pivottabellene i arbeidsboken vår, men utelukke andre datatilkoblinger, kan vi bruke en metode som kalles Oppdater tabell.

Hvis vi har flere pivottabeller i arbeidsboken vår, må vi gå gjennom alle pivottabellene for å oppdatere dem alle. For å gjøre dette, erklærer vi først en pivottabellvariabel og lager deretter en for hver sløyfe for å gå gjennom alle pivottabellene i den aktive arbeidsboken.

123456 Sub RefreshPivotsOnly ()Dim tblPivot As PivotTableFor hver tblPivot i ActiveWorkbook.PivotTablestblPivot.RefreshTableNeste tblPivotSlutt Sub

Vi kan bruke en lignende makro til å oppdatere pivottabellene i vår Aktivt ark i stedet for hele arbeidsboken. Vi ville deretter gå gjennom pivottabellene i Aktivt ark heller enn ActiveWorkbook.

123456 Sub RefreshActiveSheetPivotsOnly ()Dim tblPivot As PivotTableFor hver tblPivot i ActiveSheet.PivotTablestblPivot.RefreshTableNeste tblPivotSlutt Sub

Denne makroen ville være mest nyttig hvis vi hadde lett tilgang til den på vår Aktivt ark. For å gjøre dette kan vi lage en knapp på arket for å kjøre makroen.

Oppdater ett pivottabell

Hvis vi bare vil oppdatere pivottabellen vi jobber med, og ikke alle de andre pivottabellene i arbeidsboken, må vi identifisere den spesifikke pivottabellen. Dette er selvfølgelig så lenge du kjenner navnet på pivottabellen - i dette tilfellet Pivottabell 1.

123 Sub RefreshOneTableActiveSheet.PivotTables ("PivotTable1"). RefreshTableSlutt Sub

Oppdaterer pivottabellbufferen

Hvis vi har flere pivottabeller i arbeidsboken vår, men alle bruker de samme dataene, kan vi oppdatere pivottabellbufferen i stedet for å oppdatere den faktiske pivottabellen. Oppdatering av hurtigbufferen vil deretter automatisk oppdatere alle pivottabellene som bruker dataene i hurtigbufferen.

123456 Sub RefreshCache ()Dim chPivot som PivotCacheFor hver chPivot i ActiveWorkbook.PivotCacheschPivot.RefreshNeste chPivotSlutt Sub
wave wave wave wave wave