【问题标题】:Second CopyPicture in VBA fails with "Automation error"VBA 中的第二个 CopyPicture 因“自动化错误”而失败
【发布时间】:2017-12-05 19:35:50
【问题描述】:

所以我将一堆数据复制并粘贴到另一个电子表格中。我认为最后一点会很容易,因为我已经在这个脚本中做了很多次。

除非失败。这是我的部分代码:

ProdCK.Worksheets("CK week").Range("A11:AY28").CopyPicture Appearance:=xlScreen
Worksheets("Prod.CK").Paste Destination:=Worksheets("Prod.CK").Range("A1")

ProdCK.Worksheets("CK week").Range("I131:BO148").CopyPicture Appearance:=xlScreen
Worksheets("Prod.CK").Paste Destination:=Worksheets("Prod.CK").Range("A22")

第一个工作正常,但第二个在 CopyPicture 操作时崩溃。我已经通过首先将范围存储在一个范围中,检查数据是否存在于“手表”屏幕中然后在其上调用 CopyPicture 来检查该范围是否存在,但仍然给出了一个

424 错误需要对象

谁能帮我解释一下?


更新:

错误其实是

-2147417851 自动化错误服务器抛出异常

我的错误处理代码有一个错误,它将自动化错误变成了 Object required 错误。同样有趣的是,当我在这个 Sub 中使用可见的 Excel.Application 时,错误不会发生。我的可见和不可见设置之间的唯一区别是Visible = TrueScreenUpdating = True

【问题讨论】:

  • 你的代码中是否有这 4 个语句,即它们之间没有其他语句?
  • 是的,它们是一个接一个的。还有其他的潜艇,我在其中做完全相同的事情,然后它确实起作用了。
  • 并且“我已经通过首先将其存储在一个范围内...然后在其上调用 CopyPicture 来检查该范围是否确实存在”是否意味着您尝试插入诸如 Dim rng As Range : Set rng = ProdCK.Worksheets("CK week").Range("I131:BO148") : rng.CopyPicture Appearance:=xlScreen 之类的行和它仍然在rng.CopyPicture 部分崩溃,而不是Set rng = ... 部分?
  • 是的,这正是我所做的。
  • ProdCK 对象等于什么?

标签: vba excel


【解决方案1】:

我无法弄清楚为什么,但目前我只是在这两个语句之前设置App.Visible = True,然后将其设置回App.Visible = False。这样就可以正常工作了。

我真的不喜欢它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-09
    • 2017-11-24
    • 2015-12-08
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多