VBA Refresh Pivot Table - Alle Pivot-Tabellen mit VBA automatisch aktualisieren

Excel VBA Pivot-Tabelle aktualisieren

Wenn wir eine Pivot-Tabelle in das Blatt einfügen, müssen sich die Pivot-Tabellendaten nach dem Ändern der Daten nicht manuell ändern. In VBA gibt es jedoch eine Anweisung zum Aktualisieren der Pivot-Tabelle mit dem Namen expression.refreshtable . Mit dieser Anweisung können wir die Pivot-Tabelle aktualisieren Pivot-Tabelle durch Verweisen auf das Arbeitsblatt, aus dem sie besteht, oder wir können auf die gesamten Pivot-Tabellen in den Arbeitsblättern verweisen und sie alle gleichzeitig aktualisieren.

Die Pivot-Tabelle ist für die Analyse der großen Datenmenge von entscheidender Bedeutung. Es hilft dabei, Daten zu analysieren, zusammenzufassen und nützliche Daten zu interpretieren. Eines der Probleme mit dieser Pivot-Tabelle ist jedoch, dass sie nicht automatisch aktualisiert wird, wenn sich die Quelldaten ändern. Der Benutzer muss die Pivot-Tabelle aktualisieren, indem er bei jeder Änderung zur jeweiligen Pivot-Tabelle wechselt. Aber verabschieden Sie sich vom manuellen Prozess, denn hier haben wir die Methode, die Pivot-Tabelle zu aktualisieren, sobald Sie Änderungen an der Pivot-Tabelle vornehmen.

Wie wird der VBA-Code für Pivot-Tabellendaten automatisch aktualisiert?

Die Pivot-Tabelle muss nur aktualisiert werden, wenn sich die Quelldaten der Pivot-Tabelle, auf die wir uns beziehen, ändern.

Schauen Sie sich zum Beispiel die folgenden Daten und die Pivot-Tabelle an.

Jetzt werde ich die Zahlen in den Quelldaten ändern, dh von A1 nach B17.

In Zelle B9 muss ich den Wert von 499 auf 1499 ändern, dh 1000 Datenerhöhung, aber wenn Sie sich den Pivot ansehen, wird das Ergebnis immer noch als 4295 statt 5295 angezeigt. Ich muss meine Pivot-Tabelle manuell aktualisieren, um die zu aktualisieren Schwenktisch.

Um dieses Problem zu beheben, müssen wir einen einfachen Excel-Makrocode schreiben, um die Pivot-Tabelle zu aktualisieren, wenn sich die Quelldaten ändern.

# 1 - Einfaches Makro zum Aktualisieren aller Tabellen

Schritt 1: Ereignis des Datenblattes ändern

Wir müssen das Änderungsereignis des Datenblattes auslösen. Doppelklicken Sie im Visual Basic-Editor auf das Datenblatt.

Wenn Sie auf das Blatt doppelklicken , wählen Sie "Arbeitsblatt" und wählen Sie das Ereignis als "Ändern".

Sie sehen eine automatische Unterprozedur, die als Worksheet_Change (ByVal Target As Range) geöffnet ist.

Schritt 2: Arbeitsblattobjekt verwenden

Lesen Sie das Datenblatt mithilfe des Arbeitsblattobjekts.

Schritt 3: Pivot-Tabelle nach Namen beziehen

Beziehen Sie sich auf den Namen der Pivot-Tabelle mit dem Namen der Pivot-Tabelle.

Schritt 4: Verwenden Sie die Methode "Tabelle aktualisieren"

Wählen Sie die Methode als "Tabelle aktualisieren".

Dieser Code aktualisiert nun die Pivot-Tabelle "PivotTable1", wenn sich das Quelldatenblatt ändert. Sie können den folgenden Code verwenden. Sie müssen nur den Namen der Pivot-Tabelle ändern.

Code:

Private Sub Worksheet_Change (ByVal Ziel als Bereich) Arbeitsblatt ("Datenblatt"). PivotTables ("PivotTable1"). RefreshTable End Sub

# 2 - Aktualisieren Sie alle Pivot-Tabellen desselben Arbeitsblatts

Wenn Sie mehrere Pivot-Tabellen im selben Arbeitsblatt haben, können Sie alle Pivot-Tabellen mit einem einzigen Klick selbst aktualisieren. Verwenden Sie den folgenden Code, um alle Pivot-Tabellen im Blatt zu aktualisieren.

Code:

Sub Refresh_Pivot_Tables_Example1 () Arbeitsblätter ("Datenblatt"). Mit ActiveSheet auswählen .PivotTables ("Tabelle1"). RefreshTable .PivotTables ("Table2"). RefreshTable .PivotTables ("Table3"). RefreshTable .PivotTables ("Table4"). RefreshTable .PivotTables ("Table5"). RefreshTable End With End Sub

Sie müssen den Namen des Arbeitsblatts und die Pivot-Tabellennamen gemäß Ihren Arbeitsblattdetails ändern.

# 3 - Aktualisieren Sie alle Tabellen in der Arbeitsmappe

Es ist sehr unwahrscheinlich, dass sich alle Pivot-Tabellen auf demselben Arbeitsblatt befinden. Normalerweise versuchen wir für jeden Bericht, separate Pivot-Tabellen in separaten Blättern hinzuzufügen. In diesen Fällen können wir den Code nicht für jede zu aktualisierende Pivot-Tabelle weiter schreiben.

So, what we can do is with a single code using loops, we can loop through all the pivot tables on the workbook and refresh them with a single click of the button.

The below code will loop through each pivot table and refresh them.

Code 1:

Sub Refresh_Pivot_Tables_Example2() Dim PT As PivotTable For Each PT In ActiveWorkbook.PivotTables PT.RefreshTable Next PT End Sub

Code 2:

Sub Refresh_Pivot_Tables_Example3() Dim PC As PivotCache For Each PC In ActiveWorkbook.PivotCaches PC.Refresh Next PT End Sub

Both the codes will do the refreshing of pivot tables.

If you want the pivot table to be refreshed as soon as there is any change in the datasheet of the pivoting sheet, you need to copy and paste the above codes to the Worksheet Change event in that workbook.

#4 - Avoid Loading Time by using Worksheet Deactivate Event

Wenn wir das Ereignis "Arbeitsblattänderung" verwenden, wird es auch dann aktualisiert, wenn sich die Datenquelle nicht ändert, wenn sich jedoch Änderungen am Arbeitsblatt ergeben.

Selbst wenn Sie einen einzelnen Punkt in das Arbeitsblatt eingeben, wird versucht, die Pivot-Tabelle zu aktualisieren. Um dies zu vermeiden, können wir anstelle der Methode "Arbeitsblattänderung" die Methode "Arbeitsblatt deaktivieren" verwenden.

Deaktivieren Sie die Ereignisaktualisierungen in der Pivot-Tabelle, wenn Sie von einem Blatt zu einem anderen Blatt wechseln.

Interessante Beiträge...