In diesem Tutorial wird gezeigt, wie Sie eine Pivot-Tabelle oder alle Pivot-Tabellen mit VBA aktualisieren.
Pivot-Tabellen sind ein außergewöhnlich leistungsfähiges Datenwerkzeug von Excel. Pivot-Tabellen ermöglichen es uns, große Datenmengen zu analysieren und zu interpretieren, indem wir Felder und Zeilen gruppieren und zusammenfassen.
Wenn wir eine Pivot-Tabelle erstellen, werden die Daten in einem sogenannten Pivot-Tabellen-Cache gespeichert. Die Daten werden daher im Cache-Speicher des PCs gespeichert, was die Pivot-Tabelle beschleunigt.
Wenn die Datenquelle der Pivot-Tabelle aktualisiert wird, wird die Pivot-Tabelle selbst nicht aktualisiert. Der Benutzer in Excel muss auf das klicken Alle erfrischen Schaltfläche auf der Registerkarte Daten im Menüband, um die Quelldaten der Pivot-Tabelle zu aktualisieren.
Alternativ können wir Makros in VBA schreiben, die die Daten für uns aktualisieren!
Alle Datenverbindungen aktualisieren
Die einfachste Methode zum Aktualisieren der Daten ist die Verwendung von VBA, um zu imitieren, was Alle erfrischen Schaltfläche auf der Multifunktionsleiste.
123 | Unter RefreshConnections()ActiveWorkbook.RefreshAllEnd Sub |
Diese Methode aktualisiert alle Verbindungen zu allen Daten in der Arbeitsmappe, die Sie aktiv haben. Es aktualisiert auch nicht nur eine einzelne Pivot-Tabelle, sondern mehrere Pivot-Tabellen, wenn mehr als eine mit verschiedenen Datensätzen verbunden ist.
Alle Pivot-Tabellen aktualisieren
Um nur die Pivot-Tabellen in unserer Arbeitsmappe zu aktualisieren, aber alle anderen Datenverbindungen auszuschließen, können wir eine Methode namens . verwenden Tabelle aktualisieren.
Wenn unsere Arbeitsmappe mehrere Pivot-Tabellen enthält, müssen wir alle Pivot-Tabellen durchlaufen, um sie alle zu aktualisieren. Dazu deklarieren wir zuerst eine Pivot-Tabellenvariable und erstellen dann eine For Each-Schleife, um alle Pivot-Tabellen in der aktiven Arbeitsmappe zu durchlaufen.
123456 | Unter RefreshPivotsOnly()Dim tblPivot als PivotTableFür jedes tblPivot in ActiveWorkbook.PivotTablestblPivot.RefreshTableNächstes tblPivotEnd Sub |
Wir können ein ähnliches Makro verwenden, um die Pivot-Tabellen in unserem Aktives Blatt sondern das gesamte Arbeitsbuch. Wir würden dann die Pivot-Tabellen im ActiveSheet eher als das AktivArbeitsmappe.
123456 | Unter RefreshActiveSheetPivotsOnly()Dim tblPivot als PivotTableFür jedes tblPivot in ActiveSheet.PivotTablestblPivot.RefreshTableNächstes tblPivotEnd Sub |
Dieses Makro wäre am nützlichsten, wenn wir auf unserem leicht darauf zugreifen könnten ActiveSheet. Dazu können wir eine Schaltfläche auf dem Blatt erstellen, um das Makro auszuführen.
Aktualisieren Sie eine Pivot-Tabelle
Wenn wir nur die Pivot-Tabelle aktualisieren möchten, an der wir arbeiten, und nicht alle anderen Pivot-Tabellen in der Arbeitsmappe, müssen wir die spezifische Pivot-Tabelle identifizieren. Dies ist natürlich solange Sie den Namen der Pivot-Tabelle kennen - in diesem Fall PivotTable1.
123 | Unter RefreshOneTableActiveSheet.PivotTables("PivotTable1").RefreshTableEnd Sub |
Aktualisieren des Pivot-Tabellen-Cache
Wenn in unserer Arbeitsmappe mehrere Pivot-Tabellen vorhanden sind, die jedoch alle dieselben Daten verwenden, können wir den Pivot-Tabellen-Cache aktualisieren, anstatt die eigentliche Pivot-Tabelle zu aktualisieren. Durch das Aktualisieren des Cache werden dann automatisch alle Pivot-Tabellen aktualisiert, die die im Cache enthaltenen Daten verwenden.
123456 | Unter RefreshCache()chPivot als PivotCache dimmenFür jeden chPivot in ActiveWorkbook.PivotCacheschPivot.RefreshNächster chPivotEnd Sub |