我正在尝试在 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