Добрый день! Можно ли при запуске кода запустить проверку: если открываемый файл уже открыт, то появляется окошко с предупреждением, а если закрыт, то процедура продолжается?
Добрый день! Можно ли при запуске кода запустить проверку: если открываемый файл уже открыт, то появляется окошко с предупреждением, а если закрыт, то процедура продолжается?AVI
Function IsBookOpen(wbFullName As String) As Boolean Dim iFF As Integer iFF = FreeFile On Error Resume Next Open wbFullName For Random Access Read Write Lock Read Write As #iFF Close #iFF IsBookOpen = Err End Function
[/vba]
[vba]
Код
Function IsBookOpen(wbFullName As String) As Boolean Dim iFF As Integer iFF = FreeFile On Error Resume Next Open wbFullName For Random Access Read Write Lock Read Write As #iFF Close #iFF IsBookOpen = Err End Function
RAN, Простите, я не понял как это работает. В файле 7126039 есть форма, вот при нажатии на кнопку на форме кодом сначала надо проверять открыт ли файл 6172596, если открыт, то вылазит предупреждение и выполнение останавливается, если не открыт, то выполнение продолжается.
RAN, Простите, я не понял как это работает. В файле 7126039 есть форма, вот при нажатии на кнопку на форме кодом сначала надо проверять открыт ли файл 6172596, если открыт, то вылазит предупреждение и выполнение останавливается, если не открыт, то выполнение продолжается.AVI
На самом деле куча способов. Пожалуй, самый простой Попробуйте в коде обратиться к тому файлу. Ну, например присвоить переменной имя первого листа или значение первой ячейки первого листа. И дальше смотрим - есть ли ошибка. Если есть, то файл закрыт, если нет, то открыт. Сейчас кодом не могу написать, тороплюсь. Через пару часиков, если самостоятельно у Вас не получится
На самом деле куча способов. Пожалуй, самый простой Попробуйте в коде обратиться к тому файлу. Ну, например присвоить переменной имя первого листа или значение первой ячейки первого листа. И дальше смотрим - есть ли ошибка. Если есть, то файл закрыт, если нет, то открыт. Сейчас кодом не могу написать, тороплюсь. Через пару часиков, если самостоятельно у Вас не получится_Boroda_
AVI, только уточните, что в вашем понимании открыт? Файл может быть открыт как на чтение так и на запись, может быть открыт сторонним приложением, может быть открыт другим пользователем, если он в сети.
AVI, только уточните, что в вашем понимании открыт? Файл может быть открыт как на чтение так и на запись, может быть открыт сторонним приложением, может быть открыт другим пользователем, если он в сети.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
RAN, Все-таки оно либо не работает, либо я опять не правильно объяснил, либо оно, все же, не работает) В файле 1 есть форма, нажимая кнопку на которой происходит заполнение файла 2. Нужно сделать так, что бы перед тем как макрос попытаться открыть файл 2 была проверка не открыт ли файл 2, и если он открыт, то вылезло сообщение об этом и процесс завершен, а если не открыт, то выполнение продолжилось . _Boroda_, Я понял в чем смысл, тока не понял как остановить макрос когда вылезла ошибка. Я порыскал про отлов Error'v в макросах, но как применить не понял.
RAN, Все-таки оно либо не работает, либо я опять не правильно объяснил, либо оно, все же, не работает) В файле 1 есть форма, нажимая кнопку на которой происходит заполнение файла 2. Нужно сделать так, что бы перед тем как макрос попытаться открыть файл 2 была проверка не открыт ли файл 2, и если он открыт, то вылезло сообщение об этом и процесс завершен, а если не открыт, то выполнение продолжилось . _Boroda_, Я понял в чем смысл, тока не понял как остановить макрос когда вылезла ошибка. Я порыскал про отлов Error'v в макросах, но как применить не понял.AVI
Sub tt() On Error Resume Next a = Workbooks("7251815.xlsx").Sheets(1).Cells(1) If Err Then x_ = "Закрыт" Else x_ = "Открыт" End If On Error GoTo 0 MsgBox x_ End Sub
[/vba]
Так нужно? [vba]
Код
Sub tt() On Error Resume Next a = Workbooks("7251815.xlsx").Sheets(1).Cells(1) If Err Then x_ = "Закрыт" Else x_ = "Открыт" End If On Error GoTo 0 MsgBox x_ End Sub