使用VBA引用数据透视表数据

时间:2018-07-23 03:54:20

标签: excel vba reference pivot-table

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

示例:

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

2 个答案:

答案 0 :(得分:1)

直接引用该单元格

在我们的comments上,这不是不是获取数据摘要的最佳方法,但是您似乎很确定,并且没有关于所拥有和所拥有的信息的更多信息尝试这样做,我只想知道为什么您不仅仅引用标签单元格 “像其他任何单元格一样”

示例:

img

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

GetPivotData设置和功能

请注意,带有上述示例的公式的显示可能会有所不同,具体取决于您对Use GetPivotData functions for PivotTable references的设置(在“选项”中)(未选择“我的”),但是两种方法的最终结果都是相同的。

img
单击图像放大。


DataLabelRange属性

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

答案 1 :(得分:1)

我能够弄清楚该怎么做。不知道是否有人遇到此问题,但是下面的代码将列出所有行标签。

'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

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