【发布时间】:2017-07-13 10:19:34
【问题描述】:
我有一个带有 2 个过滤器的数据透视表“IncTrend”。 这两个过滤器我都重命名为“Service1”和“Service2”(当从 powerpivot 创建表时,它们最初都称为 Service)
在工作表的 A2 中,我有一个服务验证列表的名称,其中包含过滤器中项目的名称(它们完全匹配)。
我正在尝试编写一个 VBA 代码,该代码将从 A2 中读取“Choice”,并更改数据透视表过滤器“Service1”和“Service2”以匹配它。
前提是我将有许多不同的数据透视表,其中包含不同的数据,我需要更改过滤器以匹配,但我什至无法使用 VBA 更改。
我一直在努力
无法获取数据透视表类的 PivotFields 属性
任何帮助将不胜感激。 这是 Pivot 表的 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
【问题讨论】:
-
您确定您的
PivotField名称拼写为“Service1”吗?中间没有空格之类的? -
我对其进行了修改以确保它不会导致问题。我已经编辑了上面的代码,显示了您的建议和我的更改。
标签: vba excel pivot-table