【问题标题】:VBA Error occurs when set a range - 1004 Application Defined Error设置范围时发生 VBA 错误 - 1004 应用程序定义错误
【发布时间】:2017-06-07 02:41:59
【问题描述】:

您好,我正在编写 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

有什么想法吗?再次感谢

【问题讨论】:

  • ************************更新********************** ********
  • 始终限定 Cells 等以指定它所指的工作表 - 最后一行实际上是 Set rngData = Worksheets("Task List Data Export").Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(last, 15)) 并且您无法在一个工作表上的不同单元格之间找到范围工作表。
  • @YowE3K 您好,非常感谢您的提示。这对于消除我的困惑非常有用:)

标签: vba excel


【解决方案1】:

代码是这样的

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

【讨论】:

  • 谢谢。这固定了。但是,当我转到用于生成数据透视表的下一行(上面更新)时,会出现错误(类型不匹配)。你有什么想法?谢谢。
  • @AmadeusNing - 请不要在有人成功回答后更改问题。如果你有一个新问题,你应该提出一个新问题。
  • @YowE3K 嗨,谢谢你的建议。但是我只能在 90 分钟内提出一个问题。
猜你喜欢
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多