困繞很久的一個問題終於解決了。需求是在 Excel 中有很多個透視表,每個透視表的數據源是相同的,我希望讓這些透視表的某個過濾條件一起聯動。
比如我有三個透視表,我希望讓三個表的Month選項都改成“2014-12”。查來查去發現只能用VBA實現了。
具體代碼如下:
Public Sub FilterPivotTable() Dim ORG ORG = ActiveSheet.PivotTables("數據透視表6").PivotFields("[BRANCH_DBVIN].[ORGNAME].[ORGNAME]").CurrentPageName With ActiveSheet.PivotTables("數據透視表12").PivotFields("[BRANCH_DBVIN].[ORGNAME].[ORGNAME]") .CurrentPageName = ORG End With End Sub
這里面“透視表6”是源數據,變量ORG存儲了要變化的結果。“透視表12”是目標透視表。
如果不知道Field的名字,參考下面代碼
For each pField in ActiveSheet.PivotTables("PivotTable1").PivotFields Debug.Print pField.Name Next pField
Go to VBA Editor, press Ctrl+G, it will open the immediate window. It will show all the available pivot fields.Then please use the correct Pivot Field and try.