运行时错误'1004':无法设置PivotItem类的Visible属性
Excel VBA:
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Set pf = pt.PivotFields("Snapshot Date")
For Each pi In pf.PivotItems
If pi.Name <> "(blank)" Then
pi = DateValue(pi) 'I have tried using Cdate, Cdbl, Cstr as well.
End If
Next pi
错误发生在这里:
i = 1
Do Until i >= pf.PivotItems.count - 1
For Each pi In pf.PivotItems
pi.Visible = False 'Error here
Next pi
pf.PivotItems(i).Visible = True '.. And here!
pf.PivotItems(i + 1).Visible = True
Loop
枢轴项目是日期,在我打开/关闭可见性之前,我不确定是否需要格式化它们?
我无休止地搜索,找不到任何解决方案:(关于非连续项目的东西,但我不太明白。
答案 0 :(得分:2)
您必须至少有一个可见的PivotItem,并且您将它们全部设置为不可见。您需要循环遍历所有PivotItems,将第一个设置为visible = True,然后测试所有其余部分并相应地设置它们,然后测试第一个并相应地设置它。这样你就可以确定总有一个可见的PivotItem。
但是,我不确定你的测试是什么。你有一个循环,但不要增加“i”,所以它将永远循环,总是试图将PivotItems 1和2设置为可见。
我不知道为什么你会得到第二个错误,但如果你能解释你想要做什么,可能会有更好的方法。
答案 1 :(得分:0)
对于任何使用谷歌找到此页面的人(就像我一样),我找到了解决这个问题的方法。
问题似乎只是设置 visible = true 。
设置 visible = false 似乎工作正常。
如果您禁用多项选择,然后重新启用它,则会选择所有类别。
从那时起,您可以循环并将visible = false设置为您想要的那些。
请参阅下面的示例(工作)代码: -
Dim table As PivotTable
Dim PvI As PivotItem
Set table = ActiveSheet.PivotTables("PivotTable3")
With table.PivotFields("ERROR CODE")
.ClearAllFilters
.EnableMultiplePageItems = False
.CurrentPage = "(All)"
.EnableMultiplePageItems = True
For Each PvI In .PivotItems
Select Case PvI.Name
Case "Err0"
PvI.Visible = False
End Select
Next
End With
希望这有助于某人。