如何在Excel的PowerPivot数据透视表中将单元格值链接为过滤器?

时间:2018-09-17 15:52:28

标签: excel vba excel-vba pivot-table powerpivot

我在工作表PivotTables_Sheet中有两个数据透视表(PivotTable1和PivotTable2),并且在工作表YearInput中有一个显示年份的单元格。我尝试将YearInput中的单元格年(J4)链接为过滤器,以链接到PivotTables工作表中的所有数据透视表。

但是我的代码无法按预期工作。有人知道如何更正此代码吗? 这是代码:

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构建数据透视表。

1 个答案:

答案 0 :(得分:0)

在没有VBA的情况下执行此操作的一种方法是使用所有枢轴之间共有的切片器。然后一年改为一年,它还将更新其他数据透视表。

这是通过首先单击枢轴,然后将在功能区上显示“分析”选项。在其下有一个插入切片器,您将需要一年。

然后,您将转到其他枢纽,而是进行过滤器连接,然后选择年份分切器。

请注意,如果您不希望最终用户看到年份切片器,则可以将其移到隐藏的工作表上,它仍然可以在所有引用它的枢轴上传播年份。 >