Excel 2007中如何在关闭前判断VBA工作簿的状态?
VBA工作簿变量的三种状态及识别问题
我通过监视窗口发现,定义为工作簿的变量wb至少存在三种不同状态:
三种状态及触发方式
状态1:无法展开,值为Nothing
触发方式:常规初始化Set wb = Nothing状态2:可展开,包含大量字段
触发方式:打开指定工作簿Const scPathFile As String = "C:\Dir\abc.xlsx" Set wb = Workbooks.Open(scPathFile)状态3:可展开但无字段,仅显示
<No Variables>孤立链接
触发方式:完成状态2的打开操作后,执行关闭命令wb.Close
状态3的识别难题
第三种状态出现在工作簿关闭后、未重新赋值前的阶段,目前我尚未找到识别该状态的有效方法:
- 已尝试所有Is系列函数,均无法识别该状态
- 尝试通过读取
wb.Name字段测试,代码如下:b = IsNull(wb.Name)- 状态1下,
b = False - 状态3下会触发自动化错误,且无法用
On Error语句处理
- 状态1下,
请问是我遗漏了什么,还是这属于设计问题?
内容的提问来源于stack exchange,提问作者Steve Roberts
相关产品推荐
相关产品推荐

