我使用另一个工作表中的数据创建了一个数据透视表。我的数据透视表工作得很好。当有数据更改时,当我刷新表时,它被正确捕获。
我试图使用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