2015-09-24 123 views
1

我正在使用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 

回答

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对象,然后从创建数据透视表:

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") 
+0

它引发了一个无效的过程或参数异常。有什么建议么? – CustomX

+0

哪个版本?如果第二个版本是哪一行? – Rory

+0

这两个版本和ActiveWorkbook部分。 – CustomX

相关问题