Pivot-Tabellen in Excel sind entscheidend, um Daten leichter verständlich und verständlich zu machen. Eine Pivot-Tabelle kann Daten zu aussagekräftigen Strukturen verdichten und zerkleinern. MS Excel-Benutzer haben sie in der Datenbranche weitgehend übernommen.

Wussten Sie, dass Sie Ihre Pivot-Tabellen in Excel automatisieren und mit einem einzigen Klick erstellen können? MS Excel lässt sich gut in VBA integrieren und hat sich zu einem hervorragenden Werkzeug zur Automatisierung sich wiederholender Aufgaben entwickelt.

So können Sie eine Pivot-Tabelle mit einem Makro in MS Excel VBA automatisieren.

Verwenden Sie einen Übungsdatensatz

Sie können einen Dummy herunterladen und verwenden Datensatz von Tableau um dem VBA-Skript in diesem Handbuch zu folgen. Der VBA-Code funktioniert mit allen anderen Datensätzen, mit ein paar grundlegenden Anpassungen. Bevor Sie beginnen, stellen Sie sicher, dass Sie dies getan haben aktivierte Makros in Ihrer Excel-Arbeitsmappe.

Es gibt einige wichtige Spalten, die Sie in der Pivot-Tabelle verwenden können. Um die Nuancen und die endgültige Struktur der Tabelle zu verstehen, können Sie

instagram viewer
Erstellen Sie manuell eine einfache Pivot-Tabelle mit folgenden Elementen:

  • Filter: Region
  • Reihen: Unterkategorie
  • Säulen: Zustand
  • Werte: Verkauf

Der Enddrehpunkt sollte wie folgt aussehen:

Sie können dies jedoch von VBA automatisch erledigen lassen, anstatt es manuell vorzubereiten.

So erstellen Sie automatisch Pivot-Tabellen in Excel

Um Ihre Pivot-Tabellen mit VBA zu automatisieren, öffnen Sie eine neue Excel-Datei und benennen Sie die Blätter wie folgt um:

  • Erstes Blatt: Makro
  • Zweites Blatt: Daten

Der Makro Blatt enthält das Makroskript, während das Daten Blatt enthält Ihre Daten. Auf dem Makroblatt können Sie eine beliebige Form Ihrer Wahl einfügen und ihr das Makro zuweisen. Klicken Sie mit der rechten Maustaste auf die Form und klicken Sie auf Makro zuweisen.

Klicken Sie im folgenden Dialogfeld auf den Namen Ihres Makros und klicken Sie auf Ok. Dieser Schritt weist das Makro der Form zu.

1. Öffnen Sie den Excel-VBA-Codierungs-Editor

Drücken Sie Alt + F11 um den Code-Editor zu öffnen. Sobald Sie sich im Code-Editor befinden, klicken Sie mit der rechten Maustaste auf den Dateinamen, gefolgt von Einfügung Und Modul. Denken Sie daran, dass Sie den gesamten VBA-Code in ein Modul schreiben, bevor Sie es ausführen.

Es empfiehlt sich, einen Modulnamen zu verwenden, der zum Zweck des Codes passt. Da es sich um eine Demo handelt, können Sie den Modulnamen wie folgt definieren:

sub pivot_demo()

Der Modulname endet mit End Sub, was der Endbefehl eines Moduls ist:

Ende Sub

2. Variablen deklarieren

Beginnen Sie innerhalb des Moduls damit, Variablen zu deklarieren, um einige benutzerdefinierte Werte zu speichern, die Sie im Skript verwenden werden. Du kannst den... benutzen Abm Anweisung zum Deklarieren von Variablen wie folgt:

Dunkles PS-Blatt Als Arbeitsblatt, DSheet Als Arbeitsblatt
Dim PvtCache Als PivotCache
Dim PvtTable Als PivotTable
Dim PvtRange Als Bereich
Dim Last_Row Als Lang, Last_Col Als Lang
Dim sht1 als Variante

Sie verwenden diese Variablen für Folgendes:

  • PSBlatt: Das Zielblatt, in dem VBA einen Pivot erstellt.
  • DSheet: Das Datenblatt.
  • PvtCache: Ein Pivot-Cache enthält den Pivot.
  • PvtTable: Das Pivot-Tabellenobjekt.
  • PvtRange: Ein Datenbereich für den Pivot.
  • Last_Row und Last_Col: Letzte gefüllte Zeile und Spalte im Datenblatt (DSheet).
  • Sht1: Diese Variable ist eine Variante.

3. Warnungen und Meldungen unterdrücken

Unnötige Fehler, Warnungen und Meldungen verlangsamen Ihre VBA-Codes. Indem Sie solche Meldungen unterdrücken, können Sie den Vorgang erheblich beschleunigen.

Verwenden Sie den folgenden Code:

An Fehler Als nächstes fortfahren

Mit Anwendung
.DisplayAlerts = FALSCH
.ScreenUpdating = FALSCH
EndeMit

Wo:

  • Bei Fehler Fortsetzen als Nächstes: Diese Klausel unterdrückt alle Laufzeitfehler.
  • Anwendung: Anwendung bezieht sich auf MS Excel.
  • Anzeigewarnungen: Die DisplayAlerts-Eigenschaft definiert, ob Warnungen angezeigt werden.
  • Bildschirmaktualisierung: Diese Eigenschaft definiert, ob Änderungen in Echtzeit aktualisiert werden oder erst, nachdem der Code ausgeführt wurde.

Wenn dieser Code ausgeführt wird, unterdrückt er alle Warnungen, Warnungen und Meldungen, die Excel andernfalls anzeigen würde. Sie können die Parameter „DisplayAlerts“ und „ScreenUpdating“ deaktivieren, indem Sie ihre Werte auf festlegen FALSCH.

Gegen Ende des Codes können Sie sie wieder einschalten, indem Sie den Wert auf setzen WAHR.

4. Löschen Sie alle vorhandenen Pivot-Blätter

Um eine neue Pivot-Tabelle zu erstellen, haben Sie zwei Möglichkeiten. Löschen Sie zunächst das vorhandene Pivot-Blatt und verwenden Sie VBA, um ein neues Blatt zum Speichern des Pivots zu erstellen. Alternativ können Sie ein vorhandenes Arbeitsblatt verwenden, um den Drehpunkt zu halten.

Lassen Sie uns in dieser Anleitung ein neues Pivot-Blatt erstellen, um die Pivot-Tabelle zu speichern.

Der für jede Schleife durchläuft jedes Blatt in der Arbeitsmappe und speichert den Blattnamen in der sht1 Variable. Sie können einen beliebigen Variablennamen (sht1) verwenden, um den Blattnamen aufzunehmen. Die Schleife durchläuft jedes Blatt in der aktuellen Arbeitsmappe und sucht nach einem mit dem spezifischen Namen (Drehpunkt).

Wenn der Blattname übereinstimmt, wird das Blatt gelöscht und zum nächsten Blatt gewechselt. Sobald der Code alle Blätter überprüft hat, verlässt er die Schleife und bewegt sich zum nächsten Teil des Codes, der ein neues Blatt hinzufügt, Drehpunkt.

So können Sie es tun:

FürJedesht1InActiveWorkbook.Arbeitsblätter
Wenn sht1.Name = "Drehpunkt" Dann
sht1.Löschen
EndeWenn
Nächste sht1

Arbeitsblätter. Hinzufügen. Name = "Drehpunkt"

5. Definieren Sie Datenquelle und Pivot-Sheets

Es ist wichtig, Variablen zu erstellen, um die Referenzen der Pivot- und Datenblätter zu speichern. Diese funktionieren als Verknüpfungen, auf die Sie im restlichen Code verweisen können.

Setze PSheet = Arbeitsblätter("Drehpunkt")
Set DSheet = Arbeitsblätter ("Daten")

6. Identifizieren Sie die zuletzt verwendete Zeile und Spalte

Dieser Teil des Codes arbeitet dynamisch, da er die letzte gefüllte Zeile und Spalte in den Daten vergrößert.

Last_Row = DSheet. Zellen (Zeilen. Zählen, 1).Ende (xlUp).Row
Letzte_Spalte = DSheet. Zellen (1, Spalten. Count).End (xlToLeft).Spalte
Satz PvtRange = DSheet. Zellen(1, 1).Größe ändern (Letzte_Zeile, Letzte_Spalte)

Wo:

  • Letzte Reihe: Variable zum Speichern der letzten ausgefüllten Zeilennummer, z. B. 9995
  • Letzte_Spalte: Variable zum Speichern der zuletzt gefüllten Spaltennummer, z. B. 21
  • PvtRange: PvtRange verweist auf den gesamten Datenbereich für den Pivot

7. Erstellen Sie einen Pivot-Cache und eine Pivot-Tabelle

Ein Pivot-Cache enthält die Pivot-Tabelle; Daher müssen Sie einen Cache erstellen, bevor Sie eine Pivot-Tabelle erstellen. Sie müssen die Syntaxreferenzen von VBA verwenden, um den Pivot-Cache im Pivot-Blatt zu erstellen.

Indem Sie auf den Pivot-Cache verweisen, müssen Sie eine Pivot-Tabelle erstellen. Als Teil der Pivot-Tabelle können Sie das Blatt, den Zellbezug und den Namen der Pivot-Tabelle definieren.

Legen Sie PvtCache = ActiveWorkbook fest. PivotCaches. Create (SourceType:=xlDatabase, SourceData:=PvtRange).CreatePivotTable (TableDestination:=PSheet. Zellen (2, 2), Tabellenname:="MUODemoTable")
Setzen Sie PvtTable = PvtCache. CreatePivotTable (TableDestination:=PSheet. Zellen (1, 1), Tabellenname:="MUODemoTable")

Wo:

  • Aktive Arbeitsmappe: Die aktuelle Arbeitsmappe, in der Sie das Daten- und Pivot-Blatt haben.
  • PivotCaches. Erstellen: Standard-Syntax zum Erstellen eines Pivot-Cache.
  • Quelle Typ: Da Sie die Daten in der Arbeitsmappe haben, können Sie sie als definieren xlDatenbank. Einige andere Optionen umfassen xlKonsolidierung, xlExtern, oder xlPivotTable.
  • Quelldaten: Sie können den vorherigen Pivot-Bereich als Quelldaten referenzieren.
  • PivotTable erstellen: Standardbefehl zum Erstellen der Pivot-Tabelle.
  • TischZiel: Sie müssen die Blatt- und Zellreferenzen angeben, in denen Sie den Pivot erstellen möchten.
  • Tabellenname: Geben Sie einen Pivot-Tabellennamen an.
  • PivotTable erstellen: Standardbefehl zum Erstellen der Pivot-Tabelle im Pivot-Cache.

8. Zeilen, Spalten, Filter und Werte einfügen

Da die Pivot-Tabelle fertig ist, müssen Sie mit dem Hinzufügen der Parameter innerhalb der Filter, Zeilen, Spalten und Aggregationswerte beginnen. Sie können die VBA verwenden Drehfelder Befehl, um mit der Deklaration der Details zu beginnen.

So fügen Sie Filterwerte hinzu:

Mit ActiveSheet. PivotTables("MUODemoTable").PivotFields("Region")
.Orientation = xlPageField
EndeMit

So fügen Sie Zeilenwerte hinzu:

Mit ActiveSheet. PivotTables("MUODemoTable").PivotFields("Unterkategorie")
.Orientation = xlRowField
EndeMit

So fügen Sie Spaltenwerte hinzu:

Mit ActiveSheet. PivotTables("MUODemoTable").PivotFields("Zustand")
.Orientation = xlColumnField
EndeMit

So fügen Sie Aggregationswerte hinzu:

Mit ActiveSheet. PivotTables("MUODemoTable").PivotFields("Verkauf")
.Orientation = xlDataField
.Funktion = xlSumme
EndeMit

Beachten Sie unbedingt, dass Sie auf das aktive Blatt (Pivot-Blatt) verweisen müssen, gefolgt vom Namen der Pivot-Tabelle und dem Variablennamen. Wenn Sie Filter, Zeile(n) und Spalte(n) hinzufügen müssen, können Sie zwischen verschiedenen Syntaxen umschalten, darunter die folgenden:

  • xlPageField: Um Filter hinzuzufügen.
  • xlRowField: Zum Hinzufügen von Zeilen.
  • xlRowField: Spalten hinzufügen.

Schließlich können Sie die verwenden xlDatenfeld Befehl zur Berechnung der Wertaggregationen. Sie können andere Aggregatfunktionen wie xlSum, xlAverage, xlCount, xlMax, xlMin und xlProduct verwenden.

9. Ausführen des Excel-VBA-Codes zum Erstellen automatischer Pivots

Schließlich, wenn das gesamte Programm fertig ist, können Sie es durch Drücken von ausführen F5 oder klicken Sie auf die spielen Taste. Wenn Sie in Ihrer Arbeitsmappe zum Pivot-Blatt zurückkehren, sehen Sie, dass eine neue Pivot-Tabelle zur Überprüfung bereitsteht.

Wenn Sie Schritt für Schritt sehen möchten, wie der Codebefehl Zeile für Zeile ausgeführt wird, können Sie zum Code-Editor navigieren und drücken F8 mehrmals. Auf diese Weise können Sie sehen, wie jede Codezeile funktioniert und wie VBA Ihre Pivots automatisch erstellt.

Lernen, Pivot-Tabellen automatisch zu codieren

Pivots sind nicht nur auf MS Excel beschränkt. Mit Programmiersprachen wie Python können Sie mit nur wenigen Codezeilen optimierte Pivots erstellen.

Einfacher kann Datenoptimierung nicht sein. Sie können Ihre Befehle in Python effektiv auswählen und auswählen und mit Leichtigkeit eine ähnliche Excel-ähnliche Pivot-Struktur erreichen.