设置范围-1004应用程序定义的错误时发生VBA错误

设置范围-1004应用程序定义的错误时发生VBA错误,vba,excel,Vba,Excel,您好,我正在使用VBA代码根据源数据中的最后一行设置一个范围,然后在该范围上创建一个透视表。但是,当我运行错误为1004(应用程序定义的错误)的代码时,这里的最后一行出错了。我觉得所有的变量都已经定义好了,应该可以了。messagebox还提供源数据中的右最后一行编号。你能帮我修一下吗?谢谢 Dim PvtTbl As pivotTable Dim wsData As Worksheet Dim rngData As Range Dim PvtTblCache A

您好,我正在使用VBA代码根据源数据中的最后一行设置一个范围,然后在该范围上创建一个透视表。但是,当我运行错误为1004(应用程序定义的错误)的代码时,这里的最后一行出错了。我觉得所有的变量都已经定义好了,应该可以了。messagebox还提供源数据中的右最后一行编号。你能帮我修一下吗?谢谢

    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的代码,这个错误终于消失了。但是,我的下一行再次出错(错误类型不匹配)


有什么想法吗?再次感谢

代码如下

With Worksheets("Task List Data Export")
    Set rngData = .Range(.Cells(1, 1), .Cells(last, 15))
End With

非常感谢。这是固定的。但是,当我转到用于生成透视表的下一行(上面已更新)时,会出现错误(类型不匹配)。你有什么想法吗?谢谢。@AmadeusNing-在有人成功回答问题后,请不要更改该问题。如果你有新问题,你应该提出新问题。@YowE3K嗨,谢谢你的建议。但是,我只能在90分钟内提出一个问题。****************************更新*************************始终限定
单元格
,等等,以指定它所指的工作表-最后一行实际上是
设置rngData=工作表(“任务列表数据导出”)。范围(ActiveSheet.Cells(1,1),ActiveSheet.Cells(last,15))
而且您在一张工作表上找不到不同工作表单元格之间的区域。@YowE3K您好,非常感谢您的提示。这对于消除我的困惑非常有用:)
With Worksheets("Task List Data Export")
    Set rngData = .Range(.Cells(1, 1), .Cells(last, 15))
End With