数据透视表 - 过滤掉任何小于

时间:2016-06-03 14:37:09

标签: vba excel-vba excel

在我的数据透视表上选择了所有项目,我需要取消选择每个小于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

我正在重新审视仍然没有正确解决方案的问题。有人可以帮忙吗?

Pivot table - deselect less than a value

1 个答案:

答案 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