【发布时间】:2015-08-28 19:28:14
【问题描述】:
我需要在数据透视表中进行过滤。 我需要取消选择所有以“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
但这不起作用
【问题讨论】:
-
听起来像
For Each pivotItem in pivotField.PivotItems在这里是有序的。看看这个答案中PivotItems上的For Each循环......它应该让你开始。 stackoverflow.com/questions/30763455/…
标签: vba excel filtering wildcard