我想根据同一工作簿中的数据集(包含在工作表中)创建数据透视表。运行时错误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这意味着您的数据不是按照构建数据透视表的方式进行组织。你可以在上面的文章中添加你的数据的屏幕截图吗? –