Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 1 / 3
Регистрация: 18.10.2012
Сообщений: 594
1

Как узнать открыт ли файл Excel

09.06.2017, 14:54. Просмотров 4350. Ответов 8
Метки нет (Все метки)


Ребята здравствуйте! много чего просмотрел в инете так и ни чего конкретного для себя не нашел, подскажите Как узнать открыт(именно открыт ли конкретный файл) ли файл XL или нет, если ДА то msgbox если нет то продолжить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2017, 14:54
Ответы с готовыми решениями:

Как в VB узнать открыт Excel или нет?
Как в VB узнать открыт Excel или нет, если открыт, то необходимо просто обратиться к нему, если...

Как узнать открыт ли данный Excel документ в OLE
Здравствуйте. С помощью свойства OlePropertyGet можно подключиться к книге...

Как узнать, открыт ли нужный файл
Как узнать, открыт ли нужный файл с помощью API-функций? В Excel, например, можно скрыть окно...

Как узнать открыт ли Word файл?
Добрый день! Проблема следующая: на диске лежит файл word, его могут открывать кто угодно. Если...

8
11181 / 3559 / 630
Регистрация: 13.02.2009
Сообщений: 10,643
09.06.2017, 15:06 2
А имеет ли значение тип файла?
Попробуй такой вариант:
Visual Basic
1
2
3
4
5
6
7
8
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
1
0 / 1 / 3
Регистрация: 18.10.2012
Сообщений: 594
09.06.2017, 15:42  [ТС] 3
запускаю его так
Visual Basic
1
2
3
Set XL = CreateObject("Excel.Application")
XL.WorkBooks.Open App.Path & "\BD\ПКО_РКО.xlsx"
XL.Visible = False
получается что у меня файл скрытный

Добавлено через 18 минут
не получается с вашим кодом
0
11181 / 3559 / 630
Регистрация: 13.02.2009
Сообщений: 10,643
09.06.2017, 16:54 4
не вижу проверки на открытость

Добавлено через 5 минут
прежде чем открывать надо проверить!
1
0 / 1 / 3
Регистрация: 18.10.2012
Сообщений: 594
09.06.2017, 17:08  [ТС] 5
у меня почему то ни чего не получается устанавливаю ваш код в загрузку формы перед свои кодом ругается на строку формы
Visual Basic
1
Private Sub Form_Load()
Добавлено через 6 минут
у меня почему то ни чего не получается устанавливаю ваш код в загрузку формы перед свои кодом ругается на строку формы
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form_Load()
 
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
 
Set XL = CreateObject("Excel.Application")
XL.WorkBooks.Open App.Path & "\BD\ПКО_РКО.xlsx"
XL.Visible = False
End Sub
0
11181 / 3559 / 630
Регистрация: 13.02.2009
Сообщений: 10,643
09.06.2017, 17:09 6
хммм
я предлагал функцию!
её надо вызвать! и в зависимости от того, что она вернёт принимать решение... как-то так
2
0 / 1 / 3
Регистрация: 18.10.2012
Сообщений: 594
09.06.2017, 17:52  [ТС] 7
мне пока сложно это все можно в коде показать?

Добавлено через 18 минут
вот что у меня получилось и вроде все сработало!
Visual Basic
1
2
3
4
5
6
7
8
Dim XL As Object
On Error Resume Next
   Set XL = CreateObject("Excel.Application")
  If Err.Number <> 0 Then
   MsgBox "файл открыт"
Else
   MsgBox "файл закрыт"
End If
Добавлено через 14 минут
ПРАВДА ГОВОРЯ РЕАГИРУЕТ НА ЛЮБОЙ ФАЙЛ XL А ХОТЕЛОСЬ БЫ НА ОПРЕДЕЛЕННЫЙ КОТОРЫЙ НАХОДИТСЯ В ПАПКЕ
0
11181 / 3559 / 630
Регистрация: 13.02.2009
Сообщений: 10,643
10.06.2017, 15:49 8
Не надо функцию впихивать в процедуру!
Её надо вызвать и в зависимости от того, что она вернёт действовать
Как-то так. не проверял

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Form_Load()
 
msgbox IsBookOpen(App.Path & "\BD\ПКО_РКО.xlsx")
 
Set XL = CreateObject("Excel.Application")
XL.WorkBooks.Open App.Path & "\BD\ПКО_РКО.xlsx"
XL.Visible = False
End Sub
 
 
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
1
0 / 1 / 3
Регистрация: 18.10.2012
Сообщений: 594
12.06.2017, 10:11  [ТС] 9
вот так у меня все заработало! спасибо вам !
Visual Basic
1
2
3
4
5
If IsBookOpen(App.Path & "\BD\ПКО_РКО.xlsx") = False Then
MsgBox "файл Закрыт"
Else
   MsgBox "файл Открыт"
End If
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2017, 10:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как посредством VBA узнать открыт XLS файл или нет
Как посредством VBA можно узнать открыт ли файл (Excel) или нет?

Узнать открыт-закрыт файл в другой программе, можно и по заголовку, как угодно
Давно не могу решить этот &quot;ребус&quot; под названием &quot;Как узнать когда открыт и когда закрыт файл в...

Как проверить: открыт файл excel или нет?
Доброго времени суток! Есть файл excel, которым могут пользоваться в сети несколько пользователей и...

При открытии браузер пишет что файл открыт в Excel, к сожалению сам Excel не открывается.
Добрый день Форумчане! Появились сложности при открытии файла (через ссылку в браузере) в MS...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.