无法设置PivotItem类的Visible属性

运行时错误“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 

数据透视表的项目是date,不知道如果我需要格式化他们之前,我可以打开/closures能见度?

我已经无休止地Googlesearch,找不到任何解决方法:(关于非连续项目的东西,但我不太明白。

您必须至less有一个可见的PivotItem,并将它们全部设置为不可见。 您需要遍历所有的PivotItems,将第一个设置为visible = True,然后testing所有剩下的并相应地设置它们,然后testing第一个并相应地设置它。 这样你就可以确定总有一个可见的PivotItem。

但是,我不确定你的testing是什么。 你有一个循环,但不增加“我”,所以它会永远循环总是试图设置数据透视项1和2可见。

我不知道为什么你会得到第二个错误,但是如果你能解释你想要做什么,那么可能会有更好的方法。

对于任何使用谷歌(像我这样)发现这个网页的人,我find了解决办法。

该问题似乎只能设置可见= true

设置visible = false似乎工作正常。

如果您禁用多项select,然后重新启用它,则会select所有类别。

从这一点开始,你可以循环,并设置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 

希望这有助于某人。