我目前正在使用動態儀表板。我在計算表上有幾個來自不同來源的數據透視表,但它們具有相同的過濾選項(日期,代理名稱等)。我的概覽表從這些數據透視表中獲取數據。這個想法是基於幾個切片機連接到1個主軸,我可以更新其他數據透視表並在總覽表上對結果進行操作。同步數據透視表 - VBA代碼不起作用
我已經使用下面的代碼來同步過濾選項。當我在有透視表的工作表內進行更改時,此代碼運行良好。但是,如果我將切片器轉換到概覽表並嘗試使用數據進行操作,則只有一個數據透視表在我的計算表上得到更新,因此只有一半的信息出現在概覽表上。
代碼在概覽和計算表上都被複制。請幫忙。
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim wsMain As Worksheet
Dim ws As Worksheet
Dim ptMain As PivotTable
Dim pt As PivotTable
Dim pfMain As PivotField
Dim pf As PivotField
Dim pi As PivotItem
Dim bMI As Boolean
On Error Resume Next
Set wsMain = ActiveSheet
Set ptMain = Target
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each pfMain In ptMain.PageFields
bMI = pfMain.EnableMultiplePageItems
For Each ws In ThisWorkbook.Sheets("CalculationSheet")
For Each pt In ws.PivotTables
If ws.Name & "_" & pt <> wsMain.Name & "_" & ptMain Then
pt.ManualUpdate = True
Set pf = pt.PivotFields(pfMain.Name)
bMI = pfMain.EnableMultiplePageItems
With pf
.ClearAllFilters
Select Case bMI
Case False
.CurrentPage = pfMain.CurrentPage.Value
Case True
.CurrentPage = "(All)"
For Each pi In pfMain.PivotItems
.PivotItems(pi.Name).Visible = pi.Visible
Next pi
.EnableMultiplePageItems = bMI
End Select
End With
bMI = False
Set pf = Nothing
pt.ManualUpdate = False
End If
Next pt
Next ws
Next pfMain
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
您好上市,二你已經嘗試修改切片機連接? – WltrRpo
嗨,如上所述,數據透視表具有不同的數據源,因此無法連接切片器連接。我可以用代碼來做到這一點,但事實證明它非常慢。更快的方法是將其應用於直接轉換表。如果一個數據透視表發生了變化,另一個則受到影響,反之亦然因此,將切片機添加到其中一個樞軸以控制其他切片機的想法應該已經奏效。但是,如果切片機轉到另一個頁面,它就完美了,它只控制1個數據透視表。 – sabrekillah