Всем доброго дня!
Как можно решить такую задачу:
на сервере находится обще доступный файл ("База_Общая").
При работе со своим локальным файлом ("Отчёт") необходимо чтобы макрос проверил - открыта ли "База_Общая"? Если открыта кем-то другим - прекратить работу макроса. Если не открыт никем - открыть и перейти к этой самой "Базе_Общей". Если открыта у меня - просто перейти к нему.
Нашёл такое решение.
[vba]Код
Sub Macro1
Dim strFileName As String
strFileName = "Q:\База данных\База_Общая.xlsm"
If Not FileLocked(strFileName) Then
Workbooks.Open strFileName
Else: Exit Sub
End If
End Sub
[/vba]
[vba]Код
Function FileLocked(strFileName As String) As Boolean
On Error Resume Next
Open strFileName For Binary Access Read Write Lock Read Write As #1
Close #1
If Err.Number <> 0 Then
MsgBox "Файл " & strFileName & " уже у кого-то открыт", vbInformation
FileLocked = True
Err.Clear
End If
End Function
[/vba]
Но не работает как надо, если файл открыт у меня.
Что надо исправить?