我使用以下行从"报告过滤器":MsgBox pt.PageFields(5).PivotItems.Count
但它每次都返回0。我不确定这是不是正确的方法。这个字段肯定有Pivot项目。有人能帮助我吗?
答案 0 :(得分:0)
假设您想知道可见项目的数量而不仅仅是所有项目的数量,那么迭代每个项目以测试.visible状态是迄今为止最简单的方法。但这可能需要一段时间:我在http://dailydoseofexcel.com/archives/2013/11/14/filtering-pivots-based-on-external-ranges/写了一篇文章,只需阅读其中有20,000个项目的数据透视表的.visible状态需要花费1分20秒。我使用的许多数据透视表都很容易包含这些项目,所以当我编写必须在任何 PivotField上工作的代码时,我不会使用这种方法。
因此,如果您的PivotField有很多项目,那么比Doug的精细方法更简单 - 但可能更快 - 的方法是制作数据透视表的副本,删除/取消过每个字段,但感兴趣的是,将该字段的布局更改为PageField,然后计算它占用的行数。
我通常制作数据透视表的两份副本,然后使用其中一个来确定当前在该字段中可见的内容,另一个来确定
实现这一目标的代码非常复杂,并且是我建立的商业插件的一部分,所以我无法分享它。我很害怕。