如何使用VBA提取数据透视表数据源范围



我使用另一个工作表中的数据创建了一个数据透视表。我的数据透视表工作得很好。当有数据更改时,当我刷新表时,它被正确捕获。

我试图使用vba访问这个数据透视表的源数据细节。通过使用以下代码

Set PT = Worksheets("PivotTable").PivotTables("PivotTable1")
Debug.Print PT.SourceData

它给了我结果

数据!C1: C6

给出了正确的表名,但没有给出数据范围。我哪里做错了。

是否有其他方法可以获取源数据的详细信息。

提前感谢。

您正在拉R1C1引用。这可以通过application.convertformula来改变。请注意,由于您使用的是整个列,因此减少工作表usedrange区域内的范围范围是有意义的。如下图所示。

Set PT = Worksheets("PivotTable").PivotTables("PivotTable1")
Set rngSourse = Range(Application.ConvertFormula(pt.SourceData, xlR1C1, xlA1))
debug.print rngSourse.address
Set WSsource = rngSourse.Worksheet
Set rngSourse = Intersect(WSsource.UsedRange, rngSourse) 'now it's only the used 
debug.print rngSourse.address

最新更新