VBA数据透视表filter根据单元格值更改

我有一个数据透视表“IncTrend”与2个filter。 这两个filter我已经改名为“Service1”和“Service2”(他们最初都称为服务,当表是从powerpivot创build的)

在工作表的A2中,我有一个服务validation列表的名称与filter中的项目名称(它们完全匹配)。

我正在尝试编写一个VBA代码,它将在A2的“select”中读取,并更改数据透视表filter“Service1”和“Service2”以匹配它。

前提是我将有许多不同的数据透视表与不同的数据,我需要改变filter匹配,但我甚至不能使用VBA得到更改。

我不断收到

无法获取数据透视表类的PivotFields属性

任何援助将不胜感激。 这是数据透视表的SS。

在这里输入图像说明

我的代码是:

Sub Filter_Change() Dim WS As Worksheet: Set WS = ActiveWorkbook.Worksheets("Main") Dim PT1 As PivotTable: Set PT1 = WS.PivotTables("IncTrend") Dim PF1 As PivotField: Set PF1 = PT1.PivotFields("[Inc Open].[Service].[Service]") Dim Choice As String: Choice = Worksheets("Main").Range("A2").Value With PF1 .ClearAllFilters .CurrentPage = Choice '.PivotFilters.Add Type:=xlCaptionEquals, Value1:=Choice End With End Sub 

更换你的线路:

 PF1.CurrentPage.Name = Choice 

附:

 With PF1 .ClearAllFilters .CurrentPage = Choice End With