【问题标题】:Run-time error '1004': Application-defined or object-defined error. (copy and pasting results )运行时错误“1004”:应用程序定义的或对象定义的错误。 (复制粘贴结果)
【发布时间】:2015-10-16 15:57:22
【问题描述】:

我正在尝试将结果从工作表 a 相应地放入不同的工作表。

Sub update()
Dim cell As String, sheet As String, rcdate As String, row As Integer
row = 2
ThisWorkbook.Sheets("Auto Generate V2").Activate
cell = CStr(ThisWorkbook.Sheets("Auto Generate V2").Cells(row, 10).value)
Do While cell <> ""
sheet = Left(cell, 10)
rcdate = Right(cell, 3)
ThisWorkbook.Sheets(sheet).Activate
ThisWorkbook.Sheets(sheet).Range(rcdate).value =                           ThisWorkbook.Sheets("Auto Generate V2").Cells(row, 5).value
row = row + 1
cell = CStr(ThisWorkbook.Sheets("Auto Generate V2").Cells(row, 10).value)
Loop
End Sub

错误在 ThisWorkbook.Sheets(sheet).Range(acdate).value = ThisWorkbook.Sheets("Auto Generate V2").Cells(row, 5).value 我该如何解决它

【问题讨论】:

  • 尝试将row As Integer 更改为row As Long
  • 试过了,还是一样的错误
  • 自动生成 V2 工作表的 J 列中的典型值是多少?是否有任何值被转移或第一个被阻塞?
  • 它们是用于定位哪个工作表和哪个单元格的字符串,5 个值被传输,然后它被阻塞。
  • 我解决了,谢谢吉普。而不是在一个单元格中组合两个值作为 location ,我应该将它们分开

标签: excel


【解决方案1】:

不必要的Worksheet.Activate method 无疑会导致环境不稳定。我已修改您的例程以消除对 .ActiveSheet 的依赖。

Sub update()
    Dim cell As String, sht As String, rcDate As String, rw As Long
    rw = 2
    With ThisWorkbook.Worksheets("Auto Generate V2")
        cell = Trim(CStr(.Cells(rw, 10).Value))
        Do While cell <> ""
            sht = Left(cell, 10)
            rcDate = Right(cell, 3)
            'Debug.Print .Parent.Worksheets(sht).Range(rcDate).Address(external:=True)
            .Parent.Worksheets(sht).Range(rcDate) = .Cells(rw, 5).Value
            rw = rw + 1
            cell = Trim(CStr(.Cells(rw, 10).Value))
        Loop
    End With
End Sub

如果您仍然遇到问题,请考虑关闭所有设备并重新启动计算机。在子开发过程中发生的一系列崩溃可能导致底层编译器环境不稳定。不止一次简单的机器重启解决了未知问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-14
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多