【发布时间】:2016-02-17 15:36:47
【问题描述】:
我正在创建一个 VBA 宏。除此之外,它还制作了一个数据透视表:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=Sheets("Working").UsedRange).CreatePivotTable TableDestination:="", TableName:="HDPivotTable", DefaultVersion:=xlPivotTableVersion10
这可行,但是当我从 Excel 电子表格中删除所有数据并将其替换为相同结构的新数据时,我在上面的行中收到错误:
运行时错误“13”:类型不匹配
您能帮我解决这个问题吗?
谢谢。
已编辑:
应用 Scott 的建议后,我得到另一个错误:
With Worksheets("Working")
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
lColumn = .Range("A" & .Columns.Count).End(xlToLeft).Column
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=.Range(.Cells(1, 1), .Cells(lRow, lColumn))).CreatePivotTable TableDestination:="", TableName:="HDPivotTable", DefaultVersion:=xlPivotTableVersion10
End With
ActiveSheet.Name = "HD Pivot"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(1, 1)
ActiveSheet.PivotTables("HDPivotTable").AddFields RowFields:="Location Code"
错误是: 运行时错误“1004”:数据透视表类的 AddFields 方法失败
【问题讨论】:
-
如果每次运行代码时都使
TableName随机/唯一会怎样? -
@KazimierzJawor 你看,我可以根据需要多次运行代码而不会出现问题。当我替换数据时,问题就开始了......
-
我在这里找到了解决方案:stackoverflow.com/questions/25870193/…