我在Sheet PivotTables_Sheet
and中有两个数据透视表(PivotTable1和PivotTable2),这是一个在Sheet YearInput
中显示年份的单元格。我尝试将YearInput中的单元格年份(J4)链接为数据透视表中的所有数据透视表。
但不知何故,我的代码无法按预期工作。有谁知道如何更正此代码?这是代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = Range("J4").Address Then Exit Sub
Dim pt As PivotTable
Dim ptItem As PivotItem
On Error Resume Next
For Each pt In Worksheets("PivotTables_Sheet").PivotTables
With pt.PivotFields("Year for Sales")
If .EnableMultiplePageItems = True Then
.ClearAllFilters
End If
Set ptItem = .PivotItems(Target.Value)
If Not ptItem Is Nothing Then
.CurrentPage = Target.Value
End If
End With
Next
End Sub
注意:我使用Excel 2010并使用PowerPivot构建了数据透视表。
在没有VBA的情况下执行此操作的一种方法是使用在所有枢轴之间通用的切片器。然后一年更改为一年,它还将更新其他数据透视表。
首先单击数据透视表,然后在功能区上显示“分析”选项。在那之下有一个插入切片器,你可以做一年。
然后你会去你的其他枢轴,而是做过滤器连接,并选择你的年切片机。
请注意,如果您不希望最终用户看到年份切片器,则可以将其移动到隐藏工作表,它仍然可以在引用它的所有枢轴上传播年份。