Wie behalte ich die Formatierung eines Pivot-Diagramms in Excel 2010 bei?

Wie behalte ich die Formatierung eines Pivot-Diagramms in Excel 2010 bei?

Ich habe VBA-Code, der eine SQL-Abfrage ausführt, sie in eine Excel 2010-Tabelle schreibt und die beiden Pivot-Tabellen auf Grundlage der Daten aktualisiert. Ich habe außerdem zwei Pivot-Diagramme auf Grundlage der Pivot-Tabellen, und jedes Mal, wenn die Tabellen aktualisiert werden, geht die Formatierung der Diagramme verloren.

Ich habe die Anweisungen inAbschnitt 12.3 dieses Buchesdarin wurde vorgeschlagen, einen benutzerdefinierten Diagrammtyp basierend auf meinen Formatierungseinstellungen zu erstellen und ihn auf die Diagramme anzuwenden, die so formatiert bleiben sollen. Diese Anweisungen funktionieren hervorragendWennIch ändere die Daten manuell und aktualisiere dann die Pivot-Tabelle manuell. Die Diagramme bleiben ordnungsgemäß formatiert. Wenn ich jedoch diesen Code ausführe:

For Each pt In NewSheet.PivotTables
  pt.RefreshTable
Next

die Formatierung geht sofort verloren.

So sehen die Daten vorher aus:

Bildbeschreibung hier eingeben

und meine sorgfältig erstellten Kreisdiagramme:

Bildbeschreibung hier eingeben

Sobald ich die Daten aktualisiere und die Tabellen aktualisiere:

Bildbeschreibung hier eingeben

Das ist, was ich bekomme:

Bildbeschreibung hier eingeben

Wenn Sie den benutzerdefinierten Diagrammstil manuell anwenden, bleibt die Formatierung erhalten. Durch Ausführen des VBA-Codes wird der benutzerdefinierte Diagrammtyp jedoch irgendwie zurückgesetzt.

Antwort1

Um dies ohne die Verwendung von Pivot-Diagrammen zu erreichen, benötigen Sie lediglich einen dynamischen benannten Bereich und ein einfaches (wenn auch grob formatiertes) Diagramm.

1) Erstellen Sie einen definierten Namen mit dieser Formel: Series_A=OFFSET(Sheet!B1,0,0,COUNT(A:A),1), wobei - Sheet1!B1 sich auf Ihre erste Zählzelle in Ihrer Pivot-Tabelle bezieht (oder auf jede andere Referenz, wenn Sie mit OFFSET vertraut sind) - Count(A:A) ist Ihre Spalte mit Zeilenbeschriftungen

2) Erstellen Sie Ihr(e) Diagramm(e) mit der Serie=Serie_A (und allen anderen, die Sie benötigen).

Wenn Sie Ihre Pivot-Tabellen aktualisieren, verweisen die definierten Namen auf die expandierenden/kontrahierenden Werte in Ihrer Zeilenbeschriftungsspalte und geben nur die Werte in Ihrer Zählspalte zurück. Keine 0en, #N/A oder Hilfsspalten erforderlich.

verwandte Informationen