如何从数据透视表中取消选择 NA 和(空白)



我有这段代码,可以取消选择每个小于 10 的值,它可以工作。

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

但是,我确实在这里有文本字符串(如"NA"和(空白)),导致此公式不起作用。 我收到一条错误消息:"运行时错误'13':类型不匹配"时 pi。值遇到"NA"。我将代码调整为:

If pi.Value < 10 or pi.Value ="NA" or pi.Value ="(Blank)" Then pi.Visible = False

但是,我仍然收到相同的错误消息。 我们有办法解决这个问题吗?

这应该使其工作:

If IIf(VarType(Pi.Value) = vbError, 0, Pi.Value) < 10 Then Pi.Visible = False

如果你真的只想消除BlanksNullsErrors,那么你也可以使用它:

For Each pi In pf.PivotItems
    If IIf(VarType(pi.Value) = vbError Or _
           VarType(pi.Value) = vbEmpty Or _
           VarType(pi.Value) = vbNull, _
           0, pi.Value) < 10 Then pi.Visible = False
Next

谢谢拉尔夫!我将代码调整为如下所示,它摆脱了 NA 和空白。如果您有任何其他方法可以缩短此时间,我一定会对其进行测试:)

For Each pi In pf.PivotItems
   If IIf(VarType(pi.Value) = vbError, 0, pi.Value) < 10 Or _
   IIf(VarType(pi.Value) = vbError, 0, pi.Value) = "NA" Or _
   IIf(VarType(pi.Value) = vbError, 0, pi.Value) = "(blank)" _
   Then pi.Visible = False
Next

最新更新