所以...我用这段代码以供参考:检查excel工作簿是否打开?
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
在你的评论中你写'ff = FreeFile _()',但是在你的代码中'ff = FreeFile()'。没有下划线的初始代码正常工作。 –
是的,我知道......在我的代码中,我写了ff = FreeFile(),但是当我得到错误时,它已经强调了它。 –
尝试没有括号的'ff = FreeFile'。我有Excel 2016,它适用于或不适用它们。 –