Der Pivot-Cache in Excel VBA ist eine temporäre Tabelle, die aus den Quelldaten erstellt wurde und zum Erstellen von Berichten und Analysieren von Daten verwendet wird. Manchmal ist es jedoch notwendig, den Pivot-Cache zu aktualisieren, um Änderungen an den Quelldaten vorzunehmen oder die Analyseergebnisse zu aktualisieren.
Sie können verschiedene Methoden und Eigenschaften verwenden, um den Pivot-Cache in Excel VBA zu aktualisieren. Eine solche Methode ist die RefreshTable-Methode, die die Tabelle aktualisiert und Änderungen an den ursprünglichen Daten oder an der Schemakonstruktion der externen Datenbank enthält.
Beispielcode:Sub RefreshPivotTable()
Dim ws As Worksheet
Dim pt As PivotTable
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set pt = ws.PivotTables("PivotTable1")
pt.RefreshTable
End Sub
In diesem Codebeispiel wird ein allgemeiner Ansatz zum Aktualisieren des Pivot-Caches in Excel VBA dargestellt. Nachdem Sie die Variablen deklariert und ihnen die gewünschten Werte zugewiesen haben, wird die RefreshTable-Methode aufgerufen, um die Daten zu aktualisieren.
Daher können Sie mithilfe der RefreshTable-Methode und anderer Methoden und Eigenschaften den Pivot-Cache in Excel VBA aktualisieren und die aktuellen Ergebnisse der Datenanalyse abrufen.
Schritt 1: Öffnen Sie den Visual Basic-Editor
- Öffnen Sie die Excel-Datei, die eine Tabelle mit pivot enthält.
- Wählen Sie im Menü "Entwickler" aus - dies muss möglicherweise in den Excel-Einstellungen aktiviert werden, wenn es nicht sichtbar ist.
- Klicken Sie im Abschnitt "Entwickler" auf die Schaltfläche "Visual Basic", um den Editor zu öffnen.
- Das Fenster "Projekte" wird im Editor angezeigt, in dem alle geöffneten Arbeitsmappen und Module aufgelistet sind.
- Wählen Sie die Arbeitsmappe aus, in der sich die Tabelle mit Pivot befindet, und doppelklicken Sie darauf, um ein Codefenster für diese Arbeitsmappe zu öffnen.
Jetzt können Sie Code im Visual Basic-Editor schreiben, um den Pivot-Cache in Excel VBA zu aktualisieren.
Schritt 2: Finden Sie den Code zum Aktualisieren des Pivot-Caches
Um den Pivot-Cache in Excel VBA zu aktualisieren, müssen Sie den entsprechenden Code finden. Der Code zum Aktualisieren des Pivot-Caches könnte folgendermaßen aussehen:
| Kode | Die Beschreibung |
|---|---|
| ActiveSheet.PivotTables("Tabellenname").PivotCache.Refresh | Aktualisiert den Cache einer bestimmten Pivot-Tabelle. |
| For Each pt In ActiveSheet.PivotTables pt.PivotCache.Refresh Next pt | Aktualisiert den Cache aller Pivot-Tabellen im aktiven Arbeitsblatt. |
| For Each pt In Worksheets("Listenname").PivotTables pt.PivotCache.Refresh Next pt | Aktualisiert den Cache aller Pivot-Tabellen im angegebenen Arbeitsblatt. |
Dies sind nur einige Codebeispiele zum Aktualisieren des Pivot-Caches in Excel VBA. Sie müssen "Pivot-Tabellenname" durch den tatsächlichen Namen der Pivot-Tabelle ersetzen oder ein bestimmtes Blatt angeben, wenn Sie den Cache aller Pivot-Tabellen aktualisieren möchten.
Nachdem Sie nun den Code zum Aktualisieren des Pivot-Caches haben, können Sie ihn in Ihrem VBA-Programm oder in der Ereignisprozedur verwenden, um den Cache bei bestimmten Ereignissen automatisch zu aktualisieren.
Schritt 3: Ändern Sie den Code, um den gewünschten Cache zu aktualisieren
Nachdem Sie den Pivot-Cache erstellt haben, müssen Sie ihn möglicherweise aktualisieren, um neue Daten anzuzeigen oder Änderungen an vorhandenen Daten vorzunehmen. Dazu müssen Sie den Excel-VBA-Code ändern.
1. Suchen Sie im geöffneten VBA-Modul nach der Funktion, in der der Pivot-Cache erstellt wird.
2. Suchen Sie nach der Codezeile, die für die Erstellung des Pivot-Caches verantwortlich ist, sie könnte ungefähr so aussehen:
Set ptCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=wsData.Range("A1").CurrentRegion)
3. Ersetzen Sie diese Codezeile durch die folgende Codezeile, um den Pivot-Cache zu aktualisieren:
Set ptCache = ActiveSheet.PivotTables("Имя_таблицы").PivotCache
4. Geben Sie hier anstelle von "Tabellenname" den Namen Ihrer Pivot-Tabelle an, die Sie aktualisieren möchten.
5. Speichern Sie die Änderungen im Code, und schließen Sie das VBA-Fenster.
Jetzt aktualisiert Ihr Code nur den gewünschten Pivot-Cache. Wenn Sie den Code ausführen, werden die Pivot-Tabellendaten entsprechend dem angegebenen Cache aktualisiert.
Schritt 4: Speichern Sie die Änderungen und schließen Sie den Visual Basic-Editor
Nachdem Sie alle erforderlichen Änderungen am Code vorgenommen haben, speichern Sie die Änderungen, und schließen Sie den Visual Basic-Editor.
Um die Änderungen am Code zu speichern, klicken Sie auf die Schaltfläche Speichern in der Symbolleiste des Visual Basic-Editors oder verwenden Sie die Tastenkombination Strg + S. Sie können auch den Menüpunkt Datei → Speichern auswählen.
Nachdem Sie die Änderungen gespeichert haben, schließen Sie den Visual Basic-Editor. Klicken Sie dazu auf das Kreuz in der oberen rechten Ecke des Editorfensters oder verwenden Sie die Tastenkombination Alt + Q, um zum Excel-Arbeitsblatt zurückzukehren.
| Schritt | Handlung | Ergebnis |
|---|---|---|
| 1 | Änderungen speichern | Änderungen am Code werden gespeichert |
| 2 | Schließen Sie den Visual Basic-Editor | Zurück zum Excel-Arbeitsblatt |
In diesem Schritt haben Sie den Visual Basic-Editor beendet und sind bereit, die Änderungen in Ihrer Excel-Arbeitsmappe zu testen.
Schritt 5: Führen Sie das Makro aus, um den Cache zu aktualisieren
Nachdem Sie den Code hinzugefügt haben, um den Pivot-Cache in Excel VBA zu aktualisieren, können Sie ein Makro ausführen, um es auszuführen. Dadurch werden die Daten in der Pivottable aktualisiert und alle zugehörigen Daten und Diagramme aktualisiert.
Gehen Sie folgendermaßen vor, um das Makro zum Aktualisieren des Caches auszuführen:
- Öffnen Sie die Excel-Arbeitsmappe, die die Pivottable enthält, für die Sie den Cache aktualisieren möchten.
- Drücken ALT + F11, um den VBA-Editor zu öffnen.
- Suchen Sie im VBA-Editor im rechten Fenster "Project Explorer" nach Ihrem Projekt.
- Erweitern Sie die Projektstruktur, und suchen Sie nach dem Modul, das den Code zum Aktualisieren des Pivot-Caches enthält.
- Doppelklicken Sie auf ein Modul, um es zu öffnen.
- Drücken F5 oder wählen Sie im Menü "Debug" die Option "Ausführen", um das Makro auszuführen.
Nachdem das Makro ausgeführt wurde, wird die Pivottable aktualisiert, und alle zugehörigen Daten und Grafiken werden ebenfalls aktualisiert.
Stellen Sie sicher, dass Sie Ihre Excel-Arbeitsmappe speichern, nachdem Sie das Makro ausgeführt haben, um den Cache zu aktualisieren, um alle Änderungen zu speichern.
Schritt 6: Überprüfen Sie, ob der Cache erfolgreich aktualisiert wurde
Nachdem Sie den Pivot-Cache in Excel VBA aktualisiert haben, ist es wichtig zu überprüfen, ob das Update erfolgreich war. Dazu können Sie mehrere Aktionen ausführen:
- Öffnen Sie das Arbeitsblatt, das die Pivottable enthält, die Sie aktualisiert haben. Stellen Sie sicher, dass sich die Werte in der Pivottable entsprechend den Änderungen an den ursprünglichen Daten geändert haben. Wenn sich die Werte in der Pivottable nicht geändert haben, stellen Sie sicher, dass der Cache korrekt aktualisiert und die ursprünglichen Daten korrekt sind.
- Überprüfen Sie, ob die Formeln, die die Werte aus der Pivottable verwenden, ebenfalls aktualisiert wurden. Wenn die Formeln nicht die erwarteten Ergebnisse liefern, überprüfen Sie sie auf Fehler.
- Stellen Sie sicher, dass die Pivottable und die Formeln in allen Arbeitsblättern, die von der aktualisierten Pivottable abhängen, korrekt angezeigt werden. Wenn die Werte in einem Arbeitsblatt nicht aktualisiert wurden oder nicht korrekt angezeigt werden, überprüfen Sie die Beziehungen zwischen den Arbeitsblättern, und aktualisieren Sie den Cache in diesen Arbeitsblättern.
Wenn alle Überprüfungen erfolgreich waren und die Werte in der Pivottable und den Formeln korrekt sind, kann davon ausgegangen werden, dass der Cache erfolgreich aktualisiert wurde.
Schritt 7: Aktualisierungen auf alle verknüpften Daten anwenden
Nachdem Sie die Daten im Pivot-Cache aktualisiert haben, müssen Sie diese Aktualisierungen auf alle zugehörigen Daten in Ihrem Excel-Dokument anwenden. Auf diese Weise werden die aktuellen Werte angezeigt und die Pivottables zeigen die neuen Daten an.
Dazu können Sie den folgenden Code in Ihrer VBA-Prozedur verwenden:
Sub ApplyPivotUpdates()
Dim pivotCache As PivotCache
Dim pivotTable As PivotTable
Dim worksheet As Worksheet
Set worksheet = ThisWorkbook.Worksheets("Name Ihres Arbeitsblatts")
' Wir identifizieren den Pivot-Cache
Set pivotCache = ThisWorkbook.PivotCaches("Name Ihres Pivot-Caches")
For Each pivotTable In worksheet.PivotTables
' Stellen Sie die Datenquelle ein
pivotTable.ChangePivotCache pivotCache
' Aktualisiere die Pivot-Tabelle
pivotTable.RefreshTable
Next pivotTable
End Sub
In diesem Code identifizieren wir den Pivot-Cache, den wir im vorherigen Schritt aktualisiert haben, und wenden diese Aktualisierungen dann mithilfe einer Schleife auf alle verknüpften Pivot-Tabellen im Arbeitsblatt an. Sie können diesen Code auch so konfigurieren, dass Updates auf alle Pivotdatentabellen in der gesamten Excel-Datei angewendet werden, indem Sie eine Schleife über alle Arbeitsblätter hinzufügen.
Nach Abschluss dieses Verfahrens können Sie sehen, wie sich die aktualisierten Daten in den Pivottables widerspiegeln.