我想根據同一工作簿中的數據集(包含在工作表中)創建數據透視表。運行時錯誤1004「無法打開數據透視表源文件」
當我運行宏時,工作簿打開。數據集來自在Access中運行查詢,然後將其導出到Excel。我也嘗試在運行宏之前保存工作簿。我使用Excel 2016
這是我的代碼:
Sub BusinessInteligenceCreatePivotTable()
Dim PivotSheet As Worksheet
Dim pvtCache As PivotCache
Dim pvt As PivotTable
'Determine the data range you want to pivot
Set pvtCache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=wsPartsMachines.Name & "'!" & wsPartsMachines.Range("A1").CurrentRegion.Address, Version:=xlPivotTableVersion15)
'Create a new worksheet
With ThisWorkbook
Set PivotSheet = .Sheets.Add(After:=.Sheets(.Sheets.Count))
PivotSheet.Name = "Production Schedule"
End With
PivotSheet.Activate
Range("A1").Select
'Create Pivot table from Pivot Cache
'Set pvt = pvtCache.CreatePivotTable(TableDestination:=ActiveCell, TableName:="ProductionSchedule")
Set pvt = PivotSheet.PivotTables.Add(PivotCache:=pvtCache, TableDestination:=ActiveCell, TableName:="ProdSched")
End Sub
最後兩行產生相同的錯誤消息。 「運行時錯誤1004.不能打開數據透視表源文件'C:\ Users ...'」。
有誰知道如何解決這個問題? 謝謝。
編輯 當我錄製一個宏時,VBA給了我這個代碼(它有效)。
Sub BusinessInteligenceCreatePivotTable()
Dim PivotSheet As Worksheet
With ThisWorkbook
Set PivotSheet = .Sheets.Add(After:=.Sheets(.Sheets.Count))
PivotSheet.Name = "Production Schedule"
End With
PivotSheet.Activate
Range("A1").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Parts & Machines2!R1C1:R1328C14", Version:=6).CreatePivotTable _
TableDestination:=ActiveCell, TableName:="PivotTable1", DefaultVersion:=6
End Sub
我想我的SourceData的範圍是動態設置的。我的努力生成(使用debug.print):'Parts & Machines2'!R1C1:R1328C14 它似乎不同於宏記錄:「Parts & Machines2!R1C1:R1328C14」。
這種差異是否會產生我無法找到源數據的錯誤?
數據的屏幕截圖。 enter image description here工作表數據
'零件和Machines2' '' R1C1:!R1328C14 '零件和Machines2' R1C1:R1328C14 – Energizer1
wsPartsMachines是工作表的名稱,即而不是 「工作表Sheet」 我在VBA編輯器更名爲wsPartsMachines。 Debug.Print pvtCache.SourceData在不進行任何原始代碼編輯的情況下生成此代碼: 'Parts&Machines2'''!R1C1:零件和Machines2:R1328C14 Debug.Print pvtCache.SourceData「 從原來的代碼中刪除時‘‘‘生成這個’R1C1:R1328C14 運行此代碼(’’」去掉),我收到此錯誤信息「Set pvt =」line insted: 「運行時錯誤1004。數據透視表字段名稱無效。要創建數據透視表,您必須使用組織爲列表的數據...」 – Energizer1
@ Energizer1這意味着您的數據不是按照構建數據透視表的方式進行組織。你可以在上面的文章中添加你的數據的屏幕截圖嗎? –