我正在尝试从我的工作簿的Sheet3上名为ProjectList的表(listobject)生成数据透视表。
我得到的内容如下,但是当我尝试运行它时收到错误消息(1004)。
Dim PivotTableCache As PivotCache
Dim PT As PivotTable
Worksheets("Pivot Table Category").Delete
Sheets.Add
ActiveSheet.Name = "Pivot Table Category"
Set PivotTableCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:=Range("ProjectList"))
Sheets("Pivot Table Category").Select
Set PT = PivotTableCache.CreatePivotTable(TableDestination:=Range(1, 1), _
TableName:="PivotCategory")
`
我也尝试了一种变体,我在开头就介绍了以下内容
Dim PRange As Range
Set PRange = Sheet3.ListObjects("ProjectList").DataBodyRange
并在设置PivotCache时参考PRange,但这也不起作用。
我出错的任何想法?我有一个模糊的概念,它可能与sourcetype有关。
答案 0 :(得分:0)
目的地的范围参考不正确。它应该是
Set PT = PivotTableCache.CreatePivotTable(TableDestination:=Cells(1, 1), TableName:="PivotCategory")
'OR
Set PT = PivotTableCache.CreatePivotTable(TableDestination:=Range("A1"), TableName:="PivotCategory")
答案 1 :(得分:0)
一举可以做到:
Dim PT as PivotTable
Set PT = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"ProjectList", Version:=xlPivotTableVersion14).CreatePivotTable (TableDestination _
:="Pivot Table Category!R1C1", TableName:="PivotCategory", DefaultVersion:= _
xlPivotTableVersion14)