Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 申请书有「;与客户断开连接”;复印时_Vba_Excel - Fatal编程技术网

Vba 申请书有「;与客户断开连接”;复印时

Vba 申请书有「;与客户断开连接”;复印时,vba,excel,Vba,Excel,当试图从另一个工作簿复制工作表时,我得到一个 自动化错误。调用的对象已与其客户端断开连接 奇怪的是,这只发生在我第二次运行代码时,第一次运行代码时,它工作正常。错误发生在以下子系统中: Sub importsettings(str1 As String) 'Import the relevant sheet information Application.DisplayAlerts = False wbksandpit.Activate wbkInputs.Activate On Erro

当试图从另一个工作簿复制工作表时,我得到一个

自动化错误。调用的对象已与其客户端断开连接

奇怪的是,这只发生在我第二次运行代码时,第一次运行代码时,它工作正常。错误发生在以下子系统中:

Sub importsettings(str1 As String)

'Import the relevant sheet information
Application.DisplayAlerts = False
wbksandpit.Activate


wbkInputs.Activate
On Error GoTo catch

**wbkInputs.Sheets(str1).Copy after:=wbksandpit.Sheets(wbksandpit.Sheets.Count - 1)**

On Error GoTo 0

Exit Sub

catch:

    MsgBox str1 & " sheet does not exist!"
  Debug.Print Err.Description
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Menu").Activate
wbkInputs.Close (False)
Call unlock_all_cells
End
End Sub
错误发生在复制行上,对象在以下行中定义:

Set wbksandpit = ThisWorkbook

我第二次尝试单步执行代码,并且在即时窗口中正确定义了这两个对象。更奇怪的是,它实际上会复制第一个工作表(我用四个不同的工作表名称将其称为
str1
),因此该行正在执行,但仍然抛出错误消息,我尝试忽略该特定错误,但工作簿随后冻结,因此无法处理其他三个工作表

注意-我已经尝试重置工作表变量,但也不起作用,我还尝试在出现错误时关闭该工作表,然后重新打开它。再说一次,它不起作用


欢迎所有建议

您是否尝试过使用
.Move
而不是
Copy
?您的变量是否仍在作用域中(您是否将它们声明为
公共
)?您要复制到的工作簿中是否有隐藏的工作表?@R3UK,是的,变量仍在作用域中-我已进行了全面检查,是的,它们已声明为公共。罗里-有一张隐藏的表,但如果这导致它第二次不工作,我会感到惊讶吗?正如我所说,它第一次运行良好。注意-我已经做了一个变通方法,我只是创建了导入文件的临时副本,然后从那里导入,虽然不优雅,但目前效果很好,但我仍然有兴趣知道为什么会发生这种情况。该错误似乎是由于打开同一文件两次(打开新的时间戳副本,不会导致该错误)。
Set wbkInputs = Workbooks.Open(strfilepath, False, True)