如何在数据透视表过滤器中选择(全部)

时间:2014-05-21 20:59:26

标签: excel vba

我需要在我的数据透视表中选择(All)

我尝试了以下

Dim pf As PivotField
 Set pf = Worksheets("xxx").PivotTables("PivotTable1").PivotFields("myFilterField")
   For Each Pi In pf.PivotItems
          Pi.Visible = True
        Next Pi

这非常缓慢,而且效果不佳

另一种选择根本不起作用。它仅选择之前选择的一些项目

Worksheets("xxx").PivotTables("PivotTable1").PivotFields("myFilterField").CurrentPage = "(All)"

2 个答案:

答案 0 :(得分:2)

你可能会因为几个原因而调用.Visible = True,所以希望以下其中一个涵盖你想要做的事情:

如果您的意思是想要将所有Pi设置为一步显示,而不是仅通过pf.PivotItems中的Pi进行枚举:

pf.ShowAllItems = True

另一方面,如果您想要清除所有过滤器,那么:

pf.ClearAllFilters()

或者,如果您只想清除手动过滤器(即不是针对实际行/列提交的过滤器,而是针对过滤器字段),那么:

pf.ClearManualFilters

请参阅PivotField对象成员的帮助以获取完整列表

答案 1 :(得分:0)

尝试以下代码:

Worksheets("xxx").PivotTables("PivotTable1").PivotFields("myFilterField").ClearAllFilters