Excel 中使用 VBA 控制多個透視表(pivot table)的實現


困繞很久的一個問題終於解決了。需求是在 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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM