VBA抛出"调用的对象已与其客户端断开连接"错误

时间:2017-04-13 20:18:11

标签: excel-vba vba excel

我在Excel中写了一个VBA宏已经有好几个月了。突然,前几天它开始抛出一个错误,虽然我没有对工作簿进行任何更改:

  

运行时错误' -2147417848(80010108)':

     

自动化错误

     

调用的对象已与其客户端断开连接。

我将错误追溯到以下代码行。

wkbTool.Worksheets("Excl Spine").Range("A2:D" & exclRow).ClearContents '<--- RUNS GREAT
wkbTool.Worksheets("Delq Spine").Range("C2:D13").ClearContents '<--- ERROR OCCURS HERE

请注意,第一个行每次都运行良好,第二个行是发生错误的位置。我指出这一点是因为他们正在做大致相同类型的工作,但是一个抛出错误而另一个没有。这不是我在脚本中首次引用wkbTool.Worksheets("Delq Spine")

aware solutions this错误abound。我已经尝试了大部分内容以及我自己的一些想法。例如,以下内容引发相同的错误:

尝试1 - 一切都是变量

Dim wkbTool as Workbook
Dim wksht as Worksheet
Dim myRange as Range

Set wkbTool = Workbooks("Name.xlsm")
Set wksht = wkbTool.Worksheets("Delq Spine")
Set myRange = wksht.Range("C2:D13")

myRange.ClearContents '<--- ERROR

尝试2 - 相反

Workbooks("Name.xlsm").Worksheets("Delq Spine").Range("C2:D13").ClearContents

尝试3 - 也许ClearContents做一些疯狂的事情,跳过它

For i = 3 to 4
    For j = 2 to 13
        wkbTool.Worksheets("Delq Spine").cells(j,i) = ""
    Next j
Next i

这会导致Excel崩溃,但会先抛出错误。它在崩溃之前在第一次迭代中清楚地执行操作,因为当Excel恢复工作簿时,单元格(2,3)为空。此外,我没有在此次尝试的第一行使用ClearContents,以防ClearContents本身造成某种情况。

尝试4 - 很好,我不需要那条线

我注释掉导致错误的行。在下次循环时,有一个Worksheets("Delq Spine")的引用,它在第一次迭代中起作用,但不在第二次迭代中起作用:

With wkbTool.Worksheets("Delq Spine")
        .Activate
        .Range("C2").FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-1],'[" & wkbNew.Name & "]" & wksht.Name & "'!R3C2:R14C3,2,FALSE),0)"
End With

在上面,工作表已激活,但在将公式分配给C2时,Excel崩溃类似于尝试3。同样,一旦Excel恢复,很明显操作成功,因为公式在该单元格中更新。

尝试5 - 当然工作簿已损坏

我回过头来查看我公司的备份文件,找到当时肯定有用的工作簿版本。它在同一个地方遇到了同样的错误。

尝试6 - 让我们重新创建工作簿

我从头开始重新创建工作簿,包括编写所有公式和格式化单元格。我确实将VBA脚本复制/粘贴到新版本,因为我没有时间重写它只是因为它再次失败。

我将继续添加有关我在尝试时所做的尝试的更多信息,我上周一直在研究和解决这个问题。

0 个答案:

没有答案