尝试从其他工作簿复制工作表时,我得到了
自动化错误。调用的对象已与其客户端断开连接。
这是奇怪的部分,这只发生在我第二次运行代码时,第一次运行它,它工作正常。错误发生在以下子句中:
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
和
Set wbkInputs = Workbooks.Open(strfilepath, False, True)
我已尝试第二次单步执行代码,并且在即时窗口中正确定义了这两个对象。更奇怪的是,它实际上会复制第一张表(我将这四次称为四个不同的表名称为str1
),因此该行正在执行,但仍然抛出错误消息,我已经尝试忽略该特定错误,但工作簿会冻结,因此它不能与其他三个工作表一起使用。
注意 - 我已经尝试重置工作表变量,这些变量也不起作用,我也尝试在出错时关闭该表,然后重新打开它。再说一次,它没有用。
欢迎所有建议!