我有一个MS Excel宏来创建数据透视表。在数据透视表中我想过滤多个项目。因此,首先需要将所有项目设置为false,然后将要包含的项目设置为true。所以目前我有:
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle")
.PivotItems("FXA BI_MH Pre UAT C1").Visible = False
.PivotItems("FXA BI_MH Pre UAT C2").Visible = False
.PivotItems("FXA Reg C1").Visible = False
.PivotItems("MC3").Visible = False
.PivotItems("PT Cycle 1").Visible = False
.PivotItems("Regression Test (APO)").Visible = False
.PivotItems("SIT CR").Visible = False
.PivotItems("SIT Cycle 2").Visible = False
.PivotItems("UAT - Data Conv").Visible = False
.PivotItems("UAT Pre-Test - Additional").Visible = False
.PivotItems("UAT Pre-Test - Final").Visible = False
.PivotItems("UAT Pre-Test - Iteration 2").Visible = False
End With
ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle"). _
EnableMultiplePageItems = True
然而,"测试周期"项目更改,如果引入了新项目,它会自动包含,因为我没有将其设置为false。有没有办法将所有选择设置为false,类似(这不起作用):
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle")
.PivotItems("(All)").Visible = False
End With
ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle"). _
EnableMultiplePageItems = True
在@Josh的帮助下,我有:
ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle"). _
EnableMultiplePageItems = True
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle")
For i = 1 To .PivotItems.Count - 1
If .PivotItems(i).Name <> "UAT Pre-test (FXA)" _
And .PivotItems(i).Name <> "UAT C2 (FXA)" Then
.PivotItems(.PivotItems(i).Name).Visible = False
End If
Next i
End With
答案 0 :(得分:4)
不要手动列出每个项目,而是尝试使用以下内容关闭过滤器:
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle")
For i = 1 To .PivotItems.Count - 1
.PivotItems(.PivotItems(i).Name).Visible = False
Next i
End With
请注意,使用excel界面时,必须至少选择1个项目才能保存过滤器。