【问题标题】:Remove Items from Pivot Table Filter Using VBA使用 VBA 从数据透视表筛选器中删除项目
【发布时间】:2018-11-18 15:34:04
【问题描述】:

我正在尝试删除数据透视表中大于或等于 9000 的值。我正在使用 VBA 代码,并且能够从 UOM 过滤器中删除值,但我还需要从 OpAc 过滤器中删除 9000 或更大的值。

ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("UOM").CurrentPage = "(All)"
With ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("UOM")
    .PivotItems("""").Visible = False
    .PivotItems("""2").Visible = False
    .PivotItems("EA").Visible = False
    .PivotItems("FOZ").Visible = False
    .PivotItems("ML").Visible = False
    .PivotItems("TU").Visible = False
End With
ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("UOM"). _
    EnableMultiplePageItems = True
With ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("OpAc")
    .Orientation = xlPageField
    .Position = 1
    .PivotItems("9" & "*").Visible = False
End With

如您所见,我尝试使用通配符 9* 将 9 和 * 连接为字符串来删除项目。 我不确定我是否正确地删除了值 >= 9000

【问题讨论】:

    标签: excel filtering pivot-table vba


    【解决方案1】:

    这个问题已经解决了。要删除 9000 中的项目,请使用以下代码:

    With ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("OpAc")
        .Orientation = xlPageField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("OpAc").CurrentPage = "(All)"
    With ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("OpAc")
            For o = 1 To .PivotItems.Count
            With .PivotItems(o)
                If .Name Like ("9*") Then
                    .Visible = False
                Else
                    .Visible = True
                End If
            End With
        Next o
    End With
    ActiveSheet.PivotTables("Pivot ZP2P").PivotFields("OpAc"). _
        EnableMultiplePageItems = True
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多