【发布时间】:2018-07-11 16:45:51
【问题描述】:
我从字面上复制、粘贴和测试了可能 BB 的每一段代码,并且所有这些代码都发生了同样的事情。他们都告诉我文件打开或关闭时打开,或者他们告诉我文件打开或关闭时关闭。代码永远不会正确。这是我尝试的最后一件事,它告诉我它什么时候没有打开,什么时候没有打开
谁能告诉我这是不是因为文件位于网络上
Sub Is_WorkBook_Open()
Dim wBook As Workbook
On Error Resume Next
Set wBook = Workbooks("X:\Audit Tracking\Team_Larry\DailyReports\Larry_Blank.xlsm")
'Not open
If wBook Is Nothing Then
MsgBox "Larry's Workbook is not open, Proceed to posting", vbCritical
Set wBook = Nothing
On Error GoTo 0
'It is open
Else
MsgBox "Yes it is open, Notify Supervisor to close file", vbInformation
Set wBook = Nothing
On Error GoTo 0
End If
End Sub
【问题讨论】:
-
你应该避免像瘟疫一样的
On Error Resume Next。删除它,在每个场景中测试它,看看实际返回了什么错误(如果有的话)。然后捕获该特定错误。就个人而言,我还会添加代码以确保该文件甚至完全存在。 -
删除了 On Error Resume Next 并收到 Runtime error '9' Subscript out of Range on this line
-
设置 wBook = Workbooks("X:\Audit Tracking\Team_Larry\DailyReports\Larry_Blank.xlsm")
-
这是因为 Workbooks 被解释为无维度数组。您显然没有使用正确的语法打开工作簿。
-
@BillHileman
Workbooks是一个对象集合,而不是一个数组。当集合中不存在指定的文件时,将引发错误 9,这正是设计使然。 OP 并未尝试在此处打开任何内容。
标签: vba fileopener2