2013-08-19 53 views
0

我是VBA的新手,第一次发布,请耐心等待。VBA - 从数据透视表中选择单元格

我想从数据透视表中复制数据并将数值粘贴到单独的工作表中。我需要尽可能灵活地保留宏,以迎合任何潜在的未来数据变化。实质上,我想复制(例如)A6:E77,但是如果底层数据发生变化,则此行范围可能需要更改(因此A6:E84,而不是A6:G77)。

Range("A6", Range("A1048576").End(xlUp)).Select 

但是我怎样才能然后选择在列B中的所有细胞::电子是在列A中选择的细胞一起我可以使用选择在discontinguous数据集中的所有垂直非空白细胞?

我试过使用下面的代码,但它似乎忽略结束。(xlUp)命令。

Range("A6:E1048576", Range("A6:E1048576").End(xlUp)).Select 

任何想法?我很感谢帮助:)

+0

您的数据透视表数据是从A6开始的吗? (不包括标题)你想要复制所有的数据还是只是其中的一部分? – jlaverde

+0

Range(“A6:E”&Range(“E1048576”)。End(xlUp).Row)。选择 –

回答

3

您可以通过相关工作表对象的PivotTables集合中的PivotTable对象访问数据透视表。

例如,第一张工作表PivotTable1上的数据透视表可以作为Sheet1.PivotTables("PivotTable1")访问。

这些数据透视表对象具有诸如DataBodyRange,DataLabelRange,ColumnRange,RowRange,PageRange等有用的属性。这些范围动态更新为指向数据透视表的相关部分。

还有一些属性,例如RowFields,ColumnFields和DataFields,允许您检查数据透视表的当前结构。

不知道更多关于您试图复制的关键点的哪些部分,我不能给出更具体的建议。但您可以查看PivotTable object here的文档。

+1

+1。这是Jon Peltier的另一个[极好的参考](http://peltiertech.com/WordPress/referencing-pivot-table-ranges-in-vba/)。 –