基于单元格值的VBA数据透视过滤器

时间:2019-02-12 15:11:27

标签: excel vba

我正在尝试创建可根据特定单元格值过滤数据透视表的子项。数据透视表放置在工作表“成本”上,表的名称也为“成本”。过滤器应基于的目标单元格位于工作表“仪表板”的单元格“ D9”上。

单元格D9的值一旦更改,工作表成本上的过滤器也会更改。

下面的代码有问题,因为它什么都不做,我也不知道,这可能是问题所在。请问你能帮帮我吗?下面的代码放置在Sheet3(Dashboard)上。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim pt As PivotTable
Set pt = Worksheets("Costs").PivotTables("Costs")

If Target.Row = 9 And Target.Column = 4 Then
    pt.PivotFilters("ProjectID").CurrentPage = Worksheets("Dashboard").Range("D9").Value
End If

End Sub

非常感谢您的所有建议!

1 个答案:

答案 0 :(得分:0)

我认为正确的语法是

 pt.PivotFields("ProjectID").CurrentPage = Worksheets("Dashboard").Range("D9").Value

此外,最好清除以前的所有过滤器

 pt.PivotFields("ProjectID").ClearAllFilters