Excel 2007-Filterung über mehrere Pivot-Tabellen
-
07-07-2019 - |
Frage
In Excel 2007, ich habe einen einzelnen Datensatz in Form einer Excel-Tabelle, von dem ich mag mehr Pivot-Tabellen und Pivot-Diagramme machen. Ich möchte in der Lage sein, den Bericht der Filter "Feld über alle der Pivot-Tabellen und Diagramme gleichzeitig zu synchronisieren, so dass durch Filtrieren, (zum Beispiel) das US_Region Feld" Pacific Northwest auf einem der Pivot-Tabellen gelten würde, dass filtern, um alle der Pivot-Tabellen und Diagramme in der Arbeitsmappe (die einen einzelnen Datensatz zu teilen). Gibt es eine Möglichkeit, dies ohne VBA zu tun, und wenn es nicht ist, was die flexibelste / am wenigsten klugy wie es in VBA zu tun wäre?
Danke
Lösung
Erstellen Sie eine Prozedur alle Felder, um die Seite zu wechseln. Dieser eine Schleife durch alle Arbeitsblätter in der Arbeitsmappe, und wenn das Arbeitsblatt eine Pivot-Tabelle hat, es ändert sich die Seitenfeld auf der Pivot-Tabelle die Seite Feld an die Unter weitergegeben entsprechen.
Sub ChangePage(pt As PivotTable)
Dim strPageValue As String
Dim wks As Worksheet
Dim ptUpdate As PivotTable
Application.ScreenUpdating = False
Application.EnableEvents = False
strPageValue = pt.PivotFields("Area").CurrentPage
For Each wks In ThisWorkbook.Worksheets
On Error Resume Next
Set ptUpdate = wks.PivotTables(1)
If Err.Number = 0 Then
On Error GoTo 0
wks.PivotTables(1).PivotFields("Area").ClearAllFilters
wks.PivotTables(1).PivotFields("Area").CurrentPage = strPageValue
End If
Err.Clear
Next wks
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
dann einen Anruf zu dieser Prozedur in dem Arbeitsblatt-Code selbst und die Pivot-Tabelle übergeben Sie geändert:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Call ChangePage(Target)
End Sub
Ändern Sie den Namen des Pivot-Feld von „Area“ auf die Seite Feld, das Sie benötigen, beispielsweise „US_Region“.
Dies ist möglicherweise nicht geeignet sein, wenn die Menschen häufig die Struktur Ihrer Pivot-Tabellen auf andere Weise zu ändern sind, da es jedesmal, wenn die Pivot-Tabelle geändert wird ausgelöst wird, auch wenn es aktualisiert wird. Es wird auch ein Fehler, wenn Benutzer die angegebene Seite Feld entfernen.
Wenn die Pivot-Tabellen obwohl statisch sind, könnte dies tun.