【发布时间】:2023-03-12 07:04:01
【问题描述】:
我使用以下代码打印每个数据透视字段中存在的数据透视项及其可见状态。我在报告过滤器中有 5 个数据透视字段。
问题是,它正在正确获取枢轴字段的数量。但是当涉及到枢轴项目的数量时,每个枢轴字段都返回 0。实际上,每个字段都有很多项目。我不想打印可见项目。但是项目及其可见状态。
Dim pf As PivotField
Dim pt As PivotTable
Dim pi As PivotItem
Set pt = Sheets("Reasons").PivotTables("PivotFields")
For Each pf In pt.PageFields
For Each pi In pf.PivotItems
Debug.Print pi.Name & " : " & pi.Visible
Next
Next
【问题讨论】:
-
Pramod:你能详细说明一下你所追求的结果吗?在您的另一篇文章中,您说您想要一系列可见项目。这里也是这样吗?出于兴趣,您打算对阵列做什么?我有一些想法,但如果我知道你的最终意图会有所帮助
-
感谢您对杰夫的关注。我的报告过滤器上有 5 个数据透视字段,用户可以从其中任何一个中选择项目。每当他们在一个过滤器上进行选择时,我想将可见项收集到一个数组中并将该数组传递给 VisibleItemsList 方法以反映其他数据透视表中的相同更改。简而言之,只要选择了一个数据透视表的项目,我就想将一个数据透视表上的过滤器应用于另一个数据透视表
-
我认为您使用的是 excel 2007?
-
您能否告知 5 个数据透视字段中的每一个大概有多少项目?最简单的判断方法是创建一个只有一个字段作为行字段的数据透视表,然后查看它占用了多少行
-
其中 3 个最多有 6 个项目。但是其中 2 个分别有 30 和 53 个项目。所以行标签对我来说不是一个选项,因为它会占用太多行,而且我在过滤器下方几乎没有其他东西可以显示。为了克服这个问题,我为每个字段所在的单元格命名,每当该单元格发生更改时,我将该字段移动到列标签以获取更改并将它们反映在其他数据透视表上。
标签: excel pivot-table vba