vba数据透视表在同一工作簿的新工作表中

时间:2018-02-22 09:12:35

标签: excel-vba vba excel

借助以下编码,我可以创建数据透视表。当我将表目的地更改为另一张表时,我遇到了问题。

如果我使用以下编码,它工作正常。

Set PT = ActiveSheet.PivotTables.Add(PivotCache:=PTCache, Tabledestination:=Range("A1"))

如果我使用以下编码,则显示错误为无效程序。

Set PT = ActiveSheet.PivotTables.Add(PivotCache:=PTCache, Tabledestination:=ThisWorkbook.Sheets("Sheet4").Range("A1"))

完整的代码。

Dim PT As PivotTable
Dim PTCache As PivotCache

Worksheets("Sheet3").Select
Set PT = ActiveSheet.PivotTables.Add(PivotCache:=PTCache, Tabledestination:=ThisWorkbook.Sheets("Sheet4").Range("A1"))
Set PTCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, Cells(1, 1).CurrentRegion)
With PT
.PivotFields("phase").Orientation = xlColumnField
.PivotFields("month").Orientation = xlColumnField
.PivotFields("vertical").Orientation = xlRowField
.PivotFields("pp").Orientation = xlDataField
.DisplayFieldCaptions = False
End With

2 个答案:

答案 0 :(得分:0)

使用行号和列号引用语法。

这对我有用:

Dim PT As PivotTable
Dim PTCache As PivotCache
Worksheets("Sheet3").Select
Set PTCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, Cells(1, 1).CurrentRegion)
Set PT = PTCache.CreatePivotTable("Sheet4!R1C1", "PivotPP")
With PT
.PivotFields("phase").Orientation = xlColumnField
.PivotFields("month").Orientation = xlColumnField
.PivotFields("vertical").Orientation = xlRowField
.PivotFields("pp").Orientation = xlDataField
.DisplayFieldCaptions = False
End With

答案 1 :(得分:0)

尝试

Tabledestination:=ThisWorkbook.Sheets("Sheet4").Name & "!R1C1"