将数据透视表的数据源更改为第二个工作表

时间:2015-09-24 14:57:59

标签: excel-vba pivot vba excel

我正在使用VBA代码创建数据透视表。我记录了我的动作,并能够修改代码。唯一的问题是实际的数据源集。数据位于second worksheet内,范围为A1 to T & LastRow

我尝试使用Sheets(2)"A1:T" & LastRow更改数据源,但失败了。

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="august2015!R1C1:R734C20", Version:=xlPivotTableVersion10).CreatePivotTable TableDestination:="Sheet2!R1C1", TableName:="PivotTable3", DefaultVersion:=xlPivotTableVersion10

1 个答案:

答案 0 :(得分:0)

您需要建立地址字符串,包括工作表名称:

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
    SourceData:="'" & Sheets(2).Name & "'!" & Range("A1:T" & lastrow).Address(ReferenceStyle:=xlR1C1), _
    Version:=xlPivotTableVersion10).CreatePivotTable _
    TableDestination:="Sheet2!R1C1", TableName:="PivotTable3", DefaultVersion:=xlPivotTableVersion10

仅供参考,为了便于调试我总是建议创建一个pivotcache对象,然后从中创建一个pivottable:

Dim pc                    As PivotCache
Dim pt                    As PivotTable
Set pc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
        SourceData:="'" & Sheets(2).Name & "'!" & Range("A1:T" & lastrow).Address(ReferenceStyle:=xlR1C1), _
        Version:=xlPivotTableVersion10)
Set pt = pc.CreatePivotTable(TableDestination:="Sheet2!R1C1")