您好我正在处理我的VBA代码,以基于源数据中的最后一行设置范围,然后在该范围上创建数据透视表。但是,当我运行带有错误1004(应用程序定义的错误)的代码时,这里的最后一行出错了。我觉得所有的变数都已被定义,应该没问题。该消息框还为我提供源数据中最后一行的右侧数字。你能帮我解决吗?谢谢。当设置一个范围时发生VBA错误 - 1004应用程序定义的错误
Dim PvtTbl As pivotTable
Dim wsData As Worksheet
Dim rngData As Range
Dim PvtTblCache As PivotCache
Dim wsPvtTbl As Worksheet
Dim pvtFld As PivotField
Set wsData = Worksheets("Task List Data Export")
Set wsPvtTbl = Worksheets("Summary")
wsPvtTbl.Cells.Clear
wsPvtTbl.Cells.ColumnWidth = 10
For Each PvtTbl In wsPvtTbl.PivotTables
If MsgBox("Delete existing PivotTable!", vbYesNo) = vbYes Then
PvtTbl.TableRange2.Clear
End If
Next PvtTbl
Dim last As Long
With Worksheets("Task List Data Export")
last = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
MsgBox last
Set rngData = Worksheets("Task List Data Export").Range(Cells(1, 1), Cells(last, 15))
************************更新****************** ****** 嗨,我应用了Dy.Lee的代码,这个错误终于消失了。但我的下一行再次出错(错误类型不匹配)
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngData, Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=wsPvtTbl.Range("B25"), TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion12
任何想法?再次感谢
************************更新******* ****************** – AmadeusNing
总是要限定'Cells'等,以指定它所指的是哪一个表格 - 最后一行实际上是'Set rngData = Worksheets(“Task List数据导出“)。范围(ActiveSheet.Cells(1,1),ActiveSheet.Cells(last,15))',并且您不能在一个工作表上的不同工作表上的单元格之间找到范围。 – YowE3K
@ YowE3K嗨非常感谢您的提示。这对清除我的困惑非常有用:) – AmadeusNing