powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Из другой программы выбрать открытый файл Эксель
7 сообщений из 7, страница 1 из 1
Из другой программы выбрать открытый файл Эксель
    #34802493
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То ли я торможу, то ли это и правда сложно, но скорее просто нужно знать какой-то метод, который я не знаю.
Как работая в другом приложении офиса перебрать открытые экселевские файлы и выбрать один из них. По сути нужно самое главное чего я не знаю как Перейти к Приложению Эксель, т.е. как новое приложение открыть примеров много, а как уже открытое пользовать не пойму. Думаю всё просто, нужна какая-то команда чтобы в переменную типа object запихнуть уже открытое приложение Эксель.
Вообщем подскажите пожалуйста!
...
Рейтинг: 0 / 0
Из другой программы выбрать открытый файл Эксель
    #34802593
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub test()
Dim xlApp As Object
Dim xlWb As Object

    Set xlApp = GetObject(, "Excel.Application")
     
    If xlApp Is Nothing Then Exit Sub
    
    For Each xlWb In xlApp.Workbooks
        MsgBox xlWb.Name
    Next xlWb
    
    Set xlApp = Nothing

End Sub
Все методы объектов Excel доступны при этом, т.е. xlApp - полноценный экземпляр, в Excel ты к нему обращялся как к Application. Проще писать код, если сделаешь раннее связываение, т.к. создашь ссылку в Tools-References
...
Рейтинг: 0 / 0
Из другой программы выбрать открытый файл Эксель
    #34802651
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое за пример. Я ведь ходил вокруг функции GetObject, но с первого взгляда показалось что это не то.
Правда нужно добавить конструкцию
Код: plaintext
1.
2.
    On Error Resume Next
      Set xlApp = GetObject(, "Excel.Application")
    On Error GoTo  0 
Чтобы строка
Код: plaintext
   If xlApp Is Nothing Then Exit Sub
имела смысл, иначе зачем она?

А если открыто несколько приложений Эксель он всегда возмёт первое?
А как выглядит код при прямом связывании? Может я чё-то элементарное спрашиваю, но просто я сам себя запутал.
...
Рейтинг: 0 / 0
Из другой программы выбрать открытый файл Эксель
    #34802662
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так же точно?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim xlApp As Excel.Application
Dim xlWb As Workbook

'Set xlApp = Excel.Application

    On Error Resume Next
      Set xlApp = GetObject(, "Excel.Application")
    On Error GoTo  0 
    
    If xlApp Is Nothing Then
      MsgBox "Похоже что ни одного файла Excel не открыто"
      Exit Sub
    End If
    
    For Each xlWb In xlApp.Workbooks
        MsgBox xlWb.Name
    Next xlWb
    
    Set xlApp = Nothing 

Или тут без GetObject можно обойтись?
...
Рейтинг: 0 / 0
Из другой программы выбрать открытый файл Эксель
    #34802666
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadПравда нужно добавить конструкцию
Код: plaintext
1.
2.
    On Error Resume Next
      Set xlApp = GetObject(, "Excel.Application")
    On Error GoTo  0 
Чтобы строка
Код: plaintext
   If xlApp Is Nothing Then Exit Sub
имела смысл, иначе зачем она?ты прав, я без проверки писал :)

DeggasadА если открыто несколько приложений Эксель он всегда возмёт первое?Да

DeggasadА как выглядит код при прямом связывании? Может я чё-то элементарное спрашиваю, но просто я сам себя запутал.
Раннее связывание, когда переменные строго типизированы:
Код: plaintext
1.
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
, а не объявлены как Object. При этом требуется установить ссылку на библиотеку. Здесь плюсы такие, что раннее связывание работает быстрее и работают подсказки в редакторе. Минусы - жесткая привязка к объекту: если нет требуемой библиотеки в системе, то будет ошибка. F при позднем связывании можно было бы попытаться другую библиотеку подключить.

Для инфо, кроме GetObject есть CreateObject, который открывает новый Excel.
...
Рейтинг: 0 / 0
Из другой программы выбрать открытый файл Эксель
    #34802722
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для чего это нужно было
если интересно конечно
...
Рейтинг: 0 / 0
Из другой программы выбрать открытый файл Эксель
    #34802800
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad Для чего это нужно было
если интересно конечноидея интересная :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Из другой программы выбрать открытый файл Эксель
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]