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)