【问题标题】:Referencing Pivot Table data using VBA使用 VBA 引用数据透视表数据
【发布时间】:2018-07-23 03:54:20
【问题描述】:

我正在尝试列出数据透视表的行标签,但无法访问它们。它们不显示为行标签,所以我不确定。

示例:

Row Labels     Sum of Resources
----------     ----------------
 item 1             1
 item 2             4
 item 3             2

我希望能够访问item1item2item3

我目前的代码如下,它可以满足我的要求除了来访问项目 1 到 3:

Dim item As Variant
For Each item In ActiveSheet.PivotTables("Pivot1"). _
                             PivotFields("Sum of Resource").DataRange
    Debug.Print item;
Next item

【问题讨论】:

  • 可能重复:VBA - Select Cells from Pivot Table 和/或Referencing pivot tables from excel 2012 in VBA。另请参阅,这里有一个很好的资源:@​​987654323@ 以及the GetPivotData method 上的文档。
  • 欢迎来到Stack Overflow 下面是一些链接,这些链接可以帮助您开始使用Stack Overflow 的发帖指南。请参阅 help center 和有关研究的提示 here。包含 minimal reproducible example 和一些背景信息 会很有帮助,因为通常有替代方法来完成任务。更快速但推荐阅读:“How to Ask”以及tips here。祝你好运!
  • 我知道如何访问数据透视表范围,但我无法访问行标签。
  • 虽然解决方案可能存在于类似/重复问题的链接中(上图),但我很好奇 为什么 您想查看数据透视表标签,因为可能有更好的方法来完成您想要做的事情。例如,如果数据透视表按某个值的出现次数最多进行分组和排序,并且您想要列表中的前 3 个,则有一些基本的工作表公式将返回相同的值,而不依赖于对数据透视的 flakey 引用形状可能会意外改变的表格。
  • 每一行标签都是我们部门的一个分支。我想找出哪个分支的资源价值最高,并根据那里的值列出分支。

标签: excel vba reference pivot-table


【解决方案1】:

直接引用单元格

除了我们的comments,这不是获取数据摘要的最佳方式,但你似乎很坚定,并且没有更多关于你拥有什么以及你想要做什么的信息做,我只是想知道为什么你不只是引用标签单元格“像任何其他单元格一样”

示例:

  • 在上面的示例中,=D2 返回A,这是数据透视表的第一个标签。

GetPivotData 设置和功能

请注意,根据您对 "Use GetPivotData functions for PivotTable references" 的设置(在选项中)(未选择我的),您的上述示例中的公式可能会出现不同的显示,但无论哪种方式,最终结果都是相同的。


点击图片放大。


DataLabelRange 属性

还有其他几种方法可以引用数据透视表的 [任何] 部分,如果数据经常更改,则某些方法比其他方法更可靠。另一种方法是使用DataLabelRange 属性

【讨论】:

    【解决方案2】:

    我能够弄清楚如何做到这一点。不确定其他人是否有此问题,但下面的代码将列出所有行标签。

    'Get Row labels
    For Each item In ActiveSheet.PivotTables("Pivot-Table").RowRange
        If Not count = 0 And Not count = ActiveSheet.PivotTables("Pivot-Table").RowRange.count - 1 Then
            Debug.Print item
        End If
        count = count + 1
    Next item
    

    此代码将打印所有行标签,忽略总计和行标签标题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多