我是VBA的新手,第一次发帖,所以请耐心等待。
我正在尝试从数据透视表中复制数据并将值粘贴到单独的工作表中。我需要尽可能灵活地保留宏,以满足未来对枢轴的任何潜在变化。从本质上讲,我想复制(例如)A6:E77,但如果基础数据发生变化,则此行范围可能需要更改(因此更改为A6:E84,而不是A6:G77)。我可以使用以下方法选择分散数据集中的所有垂直非空白单元格:
Range("A6", Range("A1048576").End(xlUp)).Select
但是,如何选择B列中所有与A列中选择的单元格相对应的单元格?
我尝试使用以下代码,但似乎忽略了End。(xlUp)命令。
Range("A6:E1048576", Range("A6:E1048576").End(xlUp)).Select
有什么想法吗?我很感激帮助:)
答案 0 :(得分:4)
您可以通过相关Worksheet对象上数据透视表集合中的PivotTable对象访问数据透视表。
例如,名为PivotTable1
的第一张工作表上的数据透视表可以Sheet1.PivotTables("PivotTable1")
进行访问。
这些数据透视表对象具有有用的属性,如DataBodyRange,DataLabelRange,ColumnRange,RowRange,PageRange等。这些范围会动态更新,以指向数据透视表的相关部分。
还有一些属性,如RowFields,ColumnFields和DataFields,允许您检查数据透视表的当前结构。
如果不了解您要复制的数据透视图的哪些部分,我无法提供更具体的建议。但您可以查看PivotTable object here的文档。