在我的数据透视表上选择了所有项目,我需要取消选择每个小于10的值。这就是我现在所获得的,但是如果定义的某个值不可用,则此vba将不起作用。
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Count")
.PivotItems("10").Visible = False
.PivotItems("9").Visible = False
.PivotItems("8").Visible = False
.PivotItems("7").Visible = False
.PivotItems("6").Visible = False
.PivotItems("5").Visible = False
.PivotItems("4").Visible = False
End With
理想情况下,我想要这样的事情:
= .PivotItem("<10").Visible = False
我见过论坛上有人做了下面显示的For Next循环,但是不正确。循环计数到要隐藏的值的数量而不是它需要隐藏的数字。
`On Error Resume Next
For j = 0 To 10 Step 1
.PivotItems(j).Visible = False
Next j
On Error GoTo 0
例如:我的值为4到10,如上例所示。如果j = 5:
此循环过滤掉第5个值,即数字8(不是我想要的)
.PivotItems(5).Visible = False
虽然下面的代码过滤掉了值5(这就是我想要的)。报价有很大的不同。
.PivotItems("5").Visible = False
我正在重新审视仍然没有正确解决方案的问题。有人可以帮忙吗?
答案 0 :(得分:1)
这个怎么样:
Dim pt as PivotTable
Dim pf as PivotField
Dim pi as PivotItem
Set pt = ActiveSheet.PivotTables("PivotTable1")
Set pf = pt.PivotFields("Count")
For each pi in pf.PivotItems
If pi.Value < 10 Then pi.Visible = False
Next