VBA - Uppdatera pivottabell / alla pivottabeller

Denna handledning visar hur du uppdaterar ett pivottabell eller alla pivottabeller med VBA.

Pivottabeller är ett exceptionellt kraftfullt dataverktyg i Excel. Med pivottabeller kan vi analysera och tolka stora datamängder genom att gruppera och sammanfatta fält och rader.

När vi skapar en pivottabell lagras data i det som kallas en pivottabellcache. Data lagras därför i datorns cacheminne vilket påskyndar pivottabellen.

Om datakällan i pivottabellen uppdateras uppdateras inte själva pivottabellen. Användaren i Excel måste klicka på Uppdatera alla -knappen på fliken Data på menyfliksområdet för att uppdatera källdatan för pivottabellen.

Alternativt kan vi skriva makron i VBA som uppdaterar data för oss!

Uppdatera alla dataanslutningar

Den enklaste metoden för att uppdatera data är att använda VBA för att efterlikna vad Uppdatera alla knappen på bandet.

123 Sub RefreshConnections ()ActiveWorkbook.RefreshAllAvsluta Sub

Denna metod uppdaterar alla anslutningar till alla data i arbetsboken som du har aktiv. Det kommer inte bara att uppdatera en enda pivottabell utan uppdatera flera pivottabeller om du har mer än en ansluten till olika datamängder.

Uppdatera alla pivottabeller

För att uppdatera bara pivottabellerna i vår arbetsbok men utesluta andra dataanslutningar kan vi använda en metod som kallas Uppdatera tabell.

Om vi ​​har flera pivottabeller i vår arbetsbok, skulle vi behöva gå igenom alla pivottabellerna för att uppdatera dem alla. För att göra detta deklarerar vi först en pivottabellvariabel och skapar sedan en för varje loop för att gå igenom alla pivottabellerna i den aktiva arbetsboken.

123456 Sub RefreshPivotsOnly ()Dim tblPivot som pivottabellFör varje tblPivot i ActiveWorkbook.PivotTablestblPivot.RefreshTableNästa tblPivotAvsluta Sub

Vi kan använda ett liknande makro för att uppdatera pivottabellerna i våra Aktivt ark snarare än hela arbetsboken. Vi skulle sedan gå igenom pivottabellerna i ActiveSheet snarare än ActiveWorkbook.

123456 Sub RefreshActiveSheetPivotsOnly ()Dim tblPivot som pivottabellFör varje tblPivot i ActiveSheet.PivotTablestblPivot.RefreshTableNästa tblPivotAvsluta Sub

Detta makro skulle vara mest användbart om vi hade enkel åtkomst till det på vår ActiveSheet. För att göra detta kan vi skapa en knapp på arket för att köra makrot.

Uppdatera ett pivottabell

Om vi ​​bara vill uppdatera pivottabellen vi arbetar med och inte alla andra pivottabeller i arbetsboken, måste vi identifiera den specifika pivottabellen. Detta är naturligtvis så länge du vet namnet på pivottabellen - i det här fallet Pivottabell 1.

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

Uppdaterar pivottabellcachen

Om vi ​​har flera pivottabeller i vår arbetsbok, men alla använder samma data, kan vi uppdatera pivottabellcachen snarare än att uppdatera den faktiska pivottabellen. Uppdatering av cachen uppdaterar sedan automatiskt alla pivottabeller som använder data i cachen.

123456 Sub RefreshCache ()Dim chPivot som PivotCacheFör varje chPivot i ActiveWorkbook.PivotCacheschPivot.RefreshNästa chPivotAvsluta Sub
wave wave wave wave wave