如何在 Excel Pivot VBA 中过滤(空白)?

如何在 Excel Pivot VBA 中过滤(空白)?

我正在尝试在 VBA 中过滤 (空白) 列。有时没有 (空白) 列,但也有时会有 (空白) 列。以下是我目前得到的结果:

    Dim PItem as PivotItem
    .PivotItems("(blank)").Visible = True
    For Each PItem In .PivotItems
        If PItem.Name <> "(blank)" Then
            PItem.Visible = True
        End If
     Next

但是,如果没有(空白)列,此操作将失败。请帮忙

更新:抱歉,我忘了说明这是数据透视表

答案1

PivotItems(name)当名称不在 PivotItems 中时,防止出现错误

  • 对于缺失的值/名称,请使用字符串“ (blank)” [由 OP 标识]。

要使名称“ (blank)”不可见:

使用错误 (Microsoft Answers:测试项目是否在 PivotItems 中

On Error Resume Next
.PivotItems("(blank)").Visible = False
On Error GoTo 0

-或者-

使用循环

Dim PItem as PivotItem
For Each PItem In .PivotItems
    If PItem.Name = "(blank)" Then
        PItem.Visible = False
        Exit For
    End If
Next

根据名称设置每个项目的可见性
使用循环

Dim PItem as PivotItem
For Each PItem In .PivotItems
    PItem.Visible =  PItem.Name <> "(blank)"
Next

相关内容