使用VBA从数据透视表过滤器中删除项目

时间:2018-06-08 14:31:54

标签: excel excel-vba filtering pivot-table vba

我试图在数据透视表中删除大于或等于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

1 个答案:

答案 0 :(得分:0)

这个问题已经解决了。要删除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