呼啦!我试图使用宏过滤透视表 . 代码如下:
Dim Pi As PivotItem
With ActiveWorkbook.Worksheets("TimeToFreq").PivotTables("timetofreq").PivotFields("Transaction status")
.ClearAllFilters
.PivotItems("success").Visible = True
End With
但是我收到错误1004
无法获取数据透视表类的PivotFields属性
截图:
我浏览了很多论坛,我能找到的唯一答案是不存在具有此类名称的数据透视表或字段,但我的确如此 . 我甚至试图使用我拥有的其他字段,它仍然给我这个错误 . 我使用MS office 2013
3 回答
错误
1004
已实现,因为您没有PivotFields("Transaction status")
或它没有PivotItems("success")
.每当您在VBA中使用
PivotTables
,PivotFields
和PivotItems
时,将它们声明为非常有用 . 如果这样做,您可以将它们作为集合进行访问,并且可以遍历集合的对象 .在你的情况下,这样的东西将允许你操纵
.Visible
属性:Edit: 这是循环透视字段的方法
Edit 2, after screenshot from OP :
更换:
附:
过滤一个项目上的字段的最快方法是使其成为PageField,并使用像Deepak这样的代码 . 否则,您需要使用我在Pivotfields multiple filter发布的代码,以确保至少有一个项目始终可见 .