【问题标题】:Application-Defined or Object-defined error - Qualifying References Excel应用程序定义或对象定义的错误 - 限定参考 Excel
【发布时间】:2017-07-08 07:07:41
【问题描述】:

试图找出我的代码中的错误。目前正在尝试做一些很简单的,打开工作表,复制粘贴数据过来。尝试在不使用 .Select 或 .Activate 的情况下完成所有操作。点击“应用程序定义的或对象定义的错误”,从阅读有关此事的其他线程来看,这可能意味着我的陈述不完全合格。但是,我无法弄清楚它们是如何不完全合格的——关于该主题的其他帖子似乎缺少一个“。”代码中的某个地方,但我修复它的尝试没有得到任何地方。严重截断的代码如下(如果你没有看到它变暗/定义,它在别处)

Sub CopyPaste()
Dim CitiReportEUR As Workbook
Dim CitiReportPathEUR  As String

CitiReportPathEUR = Range("CitiReportPathEUR")
  Workbooks.Open Filename:=CitiReportPathEUR
         Set CitiReportEUR = ActiveWorkbook

         LastRowCiti = CitiReportEUR.Sheets(1).Range("I" & Rows.Count).End(xlUp).Row
         Set RngCitiEUR = CitiReportEUR.Sheets(1).Range("A1:CT" & LastRowCiti).SpecialCells(xlCellTypeVisible)

 Set CabReport.Sheets("CITI").Range("C1").Resize(RngCitiEUR.Rows.Count).Value = RngCitiEUR.Value
End Sub

当前,当我定义范围时发生错误。历史上,我在粘贴到范围时也遇到过问题……但当我实际上可以让代码运行那么远时,这是一个问题!

【问题讨论】:

  • 什么是“LastRowCS” - 它在哪里以及如何定义,它的价值是什么?使您的代码示例“显示问题的最小完整示例”通常是一个好主意。您显示的代码无法在没有多个错误的情况下运行。你能创建一段我们可以复制到我们的计算机并运行的代码 - 并得到同样的错误吗?见this
  • 我认为当您修复错字(将 LastRowCS 更改为 LastRowCiti)后您的错误消失了,我是否正确?
  • Rows.Count 没有被限定,但错误将来自代码倒数第二行中Set 的不当使用。删除Set(并限定Rows.Count),你应该没问题。
  • 并且您可能需要调整列和行的大小,除非您的源范围仅是您在设置RngCitiEUR 时使用的A:CT 的一列。 (不确定你的数据是什么样的,所以不能太确定。)
  • 啊,不,我还需要调整列的大小,你是对的。

标签: vba excel


【解决方案1】:
  1. Rows.Count 隐式使用 ActiveSheet。
  2. 在为RangeValue 属性赋值时使用Set 是不合适的。 Set 仅应在分配对对象的引用时使用。
  3. Resize 可能需要满足源中的列数和行数。

这段代码更明确:

Sub CopyPaste()
    Dim CitiReportEUR As Workbook
    Dim CitiReportPathEUR  As String

    CitiReportPathEUR = Range("CitiReportPathEUR")
    Set CitiReportEUR = Workbooks.Open(Filename:=CitiReportPathEUR)
    With CitiReportEUR.Sheets(1)
        LastRowCiti = .Range("I" & .Rows.Count).End(xlUp).Row
        Set RngCitiEUR = .Range("A1:CT" & LastRowCiti).SpecialCells(xlCellTypeVisible)
    End With   
    CabReport.Sheets("CITI").Range("C1").Resize(RngCitiEUR.Rows.Count, RngCitiEUR.Columns.Count).Value = RngCitiEUR.Value
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多