Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用VBA引用数据透视表数据_Excel_Vba_Reference_Pivot Table - Fatal编程技术网

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

Excel 使用VBA引用数据透视表数据,excel,vba,reference,pivot-table,Excel,Vba,Reference,Pivot Table,我试图列出透视表的行标签,但无法访问它们。它们不会显示为行标签,所以我不确定 示例: Row Labels Sum of Resources ---------- ---------------- item 1 1 item 2 4 item 3 2 我希望能够访问item1、item2和item3 到目前为止,我拥有的代码如下所示,除了访问项1到3之外,它实现了我想要的功能: Dim item As

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

示例:

Row Labels     Sum of Resources
----------     ----------------
 item 1             1
 item 2             4
 item 3             2
我希望能够访问
item1
item2
item3

到目前为止,我拥有的代码如下所示,除了访问项1到3之外,它实现了我想要的功能:

Dim item As Variant
For Each item In ActiveSheet.PivotTables("Pivot1"). _
                             PivotFields("Sum of Resource").DataRange
    Debug.Print item;
Next item
直接引用单元格 除此之外,这并不是获得数据摘要的最佳方式,但您似乎已经下定决心,在没有更多关于您拥有什么以及您正在尝试做什么的信息的情况下,我只想知道为什么您不像任何其他单元格一样引用标签单元格

示例:

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

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

GetPivotData
设置和功能 注意根据“
对数据透视表引用使用GetPivotData函数”
(我的未选中)的设置(在选项中),具有上述示例的公式可能会以不同方式显示,但最终结果是相同的


单击图像以放大

  • 中有关于
    GetPivotData
    的更多信息

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

  • 有关和中的
    DataLabelRange
    属性的详细信息

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

'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

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

可能重复的:和/或。另请参阅,这里有一个很好的资源:以及关于的文档。欢迎访问!下面是一些提示链接,可以帮助您开始使用网站的发布指南。请参阅有关研究的详细信息和提示。包括一些背景信息是很有帮助的,因为通常有其他方法来完成任务。更快速但推荐的阅读:“以及。祝你好运我知道如何访问数据透视表范围,但我无法访问行标签。虽然解决方案可能位于类似/重复问题的链接(如上)中,但我很好奇您为什么要查看数据透视表标签,因为可能有更好的方法来完成您正在尝试的操作。例如,如果数据透视表按某个值的最多出现次数进行分组和排序,并且您希望列表中的前三名,则有一些基本工作表公式可以返回相同的值,而不依赖于对数据透视表的片状引用,该数据透视表的形状可能会意外更改。每个行标签都是我们部门的一个分支。我想找出哪个分支在资源中的价值最高,并根据这些价值列出分支。