excel macro vba使用通配符过滤

时间:2015-06-12 17:29:08

标签: excel vba excel-vba filtering wildcard

我需要在枢轴中过滤。 我需要取消选择以" A。"开头的所有项目。和" H。" 并保留所有其他选择。

项目范围从: A.(3-13个字符) B.(3-13个字符) 一直到 Z.(3-13个字符)

原始数据也从50-500行变化(我今天可以有一个只有50行的数据 - 然后明天我可能会超过500行)

我当前的代码有效:(通过输入显示在该列上的所有可能项目 - 大约超过300个项目)它的长度但它的工作原理。 最近我收到了更多的项目,我知道我们可以使用外卡。

[MY CURRENT CODE]
    ActiveSheet.PivotTables("PivotTable1").PivotFields("column").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("column"). _
        EnableMultiplePageItems = False
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("column")
    .PivotItems(" PLACE ITEM HERE ").Visible = False
    .PivotItems
    .PivotItems
    .PivotItems [repeat over 300 times - changing the " PLACE ITEM HERE " with the items on the column]
    End With

我可以将300多行减少到大约5-10行,我正在考虑类似(下面)这样的东西,它也可以解决我的新项目尚未列入我的问题的问题:

ActiveSheet.PivotTables("PivotTable1").PivotFields("column").ClearAllFilters
        ActiveSheet.PivotTables("PivotTable1").PivotFields("column"). _
        EnableMultiplePageItems = False
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("column")
    .PivotItems("A.*").Visible = False
    .PivotItems("H.*").Visible = False
    End With

但这不起作用

1 个答案:

答案 0 :(得分:1)

试试这个:

With ActiveCell.PivotTable.PivotFields("Column")
        For i = 1 To .PivotItems.Count
            If .PivotItems(i).Name like "A.*" or .PivotItems(i).Name like "H.*" Then
                .PivotItems(i).Visible = True
            else
                .PivotItems(i).Visible = False
            End If
        Next i
    End With