我的代码是我尝试打开一个工作簿,然后基于标题为“数据”的选项卡上的数据范围创建一个透视表。
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTBookY As PivotTable
Dim PRange As Range
Dim lastRow As Long
Dim LastCol As Long
Application.ScreenUpdating = False
Set UKBook = _
Workbooks.Open _
("File Path")
Worksheets("Data").Visible = True
Sheets.Add
ActiveSheet.Name = "B22"
Set PSheet = ActiveWorkbook.Worksheets("B22")
Set DSheet = ActiveWorkbook.Worksheets("Data")
'Define Data Range
lastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(lastRow, LastCol)
'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange.Address)
'Insert Blank Pivot Table
Set PTBookY = PSheet.PivotTables.Add(PivotCache:=PCache, TableDestination:=PSheet.Range("A1"), TableName:="PTBookY")
我还有其他代码来输入透视表的行/列/值,但我不认为这是相关的。
我总是收到
运行时错误1004:数据透视表字段名称无效”
插入空白数据透视表时。
我注意到,如果我打开工作簿并在“数据”选项卡上,代码将更一致地通过。
数据区域的每一列都有标题,文件路径和工作表名称正确。
1条答案
按热度按时间zpqajqem1#
你真的不应该依赖
ActiveWorkbook
。如果你使用UKBook
,那么指定它。到