Итак ... Я использовал этот кусок кода для справки:Проверьте, открыта ли книга 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: ФФ = FreeFile_().
Почему это так? Какая синтаксическая ошибка есть? Я пытаюсь проверить, открывается ли рабочая книга другим пользователем, потому что, если это так, я не могу сохранить значения в книге.
Спасибо за ответы, D.
В вашем комментарии вы пишете 'ff = FreeFile _()', но в вашем коде 'ff = FreeFile()'. Исходный код без подчеркивания отлично работает. –
Да, я знаю ... В моем коде я написал ff = FreeFile(), но когда я получаю ошибку, в нем есть подчеркивание. –
Попробуйте 'ff = FreeFile' без круглых скобок. У меня Excel 2016, и он работает с ними или без них. –