1

我是 VBA 的新手,第一次发帖,所以请多多包涵。

我正在尝试从数据透视表复制数据并将值粘贴到单独的工作表中。我需要让宏尽可能灵活,以适应未来对枢轴的任何潜在变化。本质上我想复制(例如)A6:E77,但是如果基础数据发生变化,这个行范围可能需要改变(所以到 A6:E84,而不是 A6:G77)。我可以使用以下方法选择不连续数据集中的所有垂直非空白单元格:

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

但是,我如何才能选择 B:E 列中与 A 列中选择的单元格并排的所有单元格?

我曾尝试使用以下代码,但它似乎忽略了 End.(xlUp) 命令。

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

有任何想法吗?我很感激帮助:)

4

1 回答 1

4

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

例如,您的第一个工作表上名为的数据透视表PivotTable1可以作为Sheet1.PivotTables("PivotTable1").

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

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

在不了解更多关于您要复制的枢轴部分的信息的情况下,我无法提供更具体的建议。但是您可以在此处查看 PivotTable 对象的文档。

于 2013-08-19T16:40:29.413 回答