【发布时间】:2018-03-29 15:38:10
【问题描述】:
我之前能够在代码中创建数据透视表,但这会添加到新工作表中。我现在正在尝试将数据透视表添加到现有工作表,并收到错误消息“运行时错误 1004:数据透视表字段名称无效”。代码如下,我的错误从 ActiveWorkbook 开始并以 xlPivotTableVersion14 结束的最后一段开始。任何帮助将不胜感激。
Public Sub AlliedPT()
Dim AlliedData As String
Dim SAProw As Long
Dim PivotSheet As String
Sheets("Sheet1").Select
SAProw = Cells(Rows.Count, "A").End(xlUp).Row
Sheets("Sheet1").Select
ActiveWorkbook.Names.Add Name:="AlliedData", RefersTo:= _
"=Sheet1!$A$1:$N$" & SAProw
Sheets("PivotSheet").Select
PivotSheet = ActiveSheet.Name
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"AlliedData", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:=PivotSheet & "!R3C6", TableName:="PivotTable18",
DefaultVersion _
:=xlPivotTableVersion14
End Sub
【问题讨论】:
-
不相关,但是为什么你在
DefaultVersion参数名称和你给它的:=xlPivotTableVersion14值之间放置一个换行符/继续? -
我按照宏记录器进行了该过程的该步骤。那可能应该删除
-
SourceData:=和"AlliedData"相同 - 记录器非常适合生成糟糕的代码,您应该始终重新格式化它,使其至少具有最低限度的可读性 ;-) ...并替换所有.Select带有对象引用和成员调用。 -
我认为您应该检查 SSheet 1 中的第 1 行 A-N 列,并确保源数据中的每一列都有一个唯一的非空白列名。第一行包含数据透视表字段名称。
-
哈哈,是的,宏记录器有时会让你失望。感谢Kaciree,你是个天才,这正是问题所在。一列没有标题