我有一个简单的问题(我认为)。让我们说我在Book1的标准模块中将一个全局变量设置为一个开放(不同)的工作簿:
Public Sub InitGlobals()
Set gwkb = Workbooks("book2.xlsx")
End Sub
现在我手动关闭book2.xlsx。 gwkb
的状态是什么?这是我在即时窗口中运行各种测试时得到的结果:
?gwkb is nothing
False
?isempty(gwkb)
False
?isnull(gwkb)
False
但是,如果我要求gwkb
的任何属性,例如gwkb.Name
,我会收到自动化错误。
我的问题是:有没有办法测试这种情况,而不是诉诸某种" On Error Resume Next
"测试?
感谢您的帮助。
答案 0 :(得分:1)
如果 Book2 最初处于打开状态且可能已关闭,则循环打开的图书将无法找到它:
Public Sub InitGlobals()
Dim gwkb As Workbook, wb As Workbook
Set gwkb = Workbooks("Book2.xlsx")
gwkb.Close
For Each wb In Workbooks
If wb.Name = "Book2" Then
MsgBox wb.Name & " is open "
End If
Next wb
End Sub