Я нашел код на здесь, чтобы проверить, если рабочая книга открыта, но я получаюпроверки, чтобы увидеть, если рабочая книга открыта VBA, сбой, если файл открыт
Run-time Error '70': Permission Denied if the file is open.
Я не знаете, как справиться с этой ошибкой или изменить код, чтобы справиться с этим.
Sub Sample()
Dim Ret
Ret = IsWorkBookOpen("I:\RJB\Juan's Project\Summary Sheet.xlsm")
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 'This line is highlighted when the crash occurs
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
Для интересующихся, вот оригинальный вопрос с приведенным выше кодом: http://stackoverflow.com/questions/9373082/detect-whether-excel-workbook-is-already-open-using-vba –
Код зависит от этой ошибки, возникающей в первую очередь, поэтому существует строка 'On Error Resume Next': чтобы подавить это сообщение об ошибке, чтобы он мог проверить, что такое ErrNo позже. Вы вообще изменили код? – tigeravatar
Я так не думаю, что код, который я использую, выше, я только изменил имя файла на проект I: \ RJB \ Juan's \ Summary Sheet.xlsm. –