首页 文章

VBA透视表过滤器根据单元格值进行更改

提问于
浏览
2

我有一个带有2个过滤器的数据透视表“IncTrend” . 这两个过滤器我都重命名为“Service1”和“Service2”(当这些表是从powerpivot创建时,它们最初都被称为服务)

在工作表的A2中,我有一个服务验证列表的名称,其中包含过滤器中项目的名称(它们完全匹配) .

我正在尝试编写一个将从A2中的“选择”中读取的VBA代码,并更改数据透视表过滤器“Service1”和“Service2”以匹配它 .

前提是我将有许多不同的数据透视表,我需要更改过滤器以匹配不同的数据,但我甚至无法使用VBA进行更改 .

我一直在

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

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

enter image description here

我的代码是:

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

1 回答

  • 0

    替换你的行:

    PF1.CurrentPage.Name = Choice
    

    附:

    With PF1
        .ClearAllFilters
        .CurrentPage = Choice
    End With
    

相关问题