检查excel工作簿是否已打开?

时间:2017-01-11 10:01:03

标签: excel excel-vba vbscript vba

所以......我用这段代码作为参考:

Option Explicit

Sub Sample()
Dim Ret

Ret = IsWorkBookOpen("C:\myWork.xlsx")

If Ret = True Then
    MsgBox "File is open"
Else
    MsgBox "File is Closed"
End If
End Sub

Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long

On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0

Select Case ErrNo
Case 0:    IsWorkBookOpen = False
Case 70:   IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function

我使用了我的工作簿和所有内容,但它在第15行返回语法错误:ff = FreeFile _()。

为什么会这样?有什么语法错误? 我正在尝试检查某个其他用户是否打开了工作簿,因为如果是这种情况,我无法将值保存在工作簿中。

感谢您的回答,D。

1 个答案:

答案 0 :(得分:0)

我认为您已将代码复制/粘贴到VBA编辑器中。所以清理代码,删除所有不需要的空白,验证每行完成的位置。