Как подключиться к Excel (с уже открытой книгой)?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Как подключиться к Excel (с уже открытой книгой)?

Сообщение igor_m » 10.06.2004 (Чт) 13:37

Как поработать с открытой книгой xls? Т.е. как подключиться к имеющемуся объекту (окну может быть, или не знаю к чему).

Могу: создать объект Ехсеl и сделать там что нужно (OLE).
В уже открытом Excel (созданном объекте) на VBA разобраться с книгами - данными.
Найти нужное окно (hwnd).

А нужно: есть у меня открытый Excel. Вот нужно бы именно к этому объекту периодически подключаться и менять там данные в книгах. А как это сделать не пойму. По идее, когда мы создаем объект, мы просто работаем с указателем на него. Значит при работе с существующим объектом нужно найти указатель на него и через него работать. А практически - потыркался-потыркался и не пойму как что делать. Причем в 98 при создании объекта (Excel), если таковой уже был создан в системе, он и использовался. Но в 2000 и ХР все не так - именно создается новый не перехлестываясь с имеющимися.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.06.2004 (Чт) 13:53

Используй не CreateObject, а GetObject.
Lasciate ogni speranza, voi ch'entrate.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 10.06.2004 (Чт) 14:07

Привет, Большой Человек!

У меня почему-то он не работает. Т.е. на этом операторе вылетает ошибка автоматизации.
Set W_Excel = GetObject("Excel.Application.8")
CreateObject работает, а этот нет.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 10.06.2004 (Чт) 14:41

Alibek! Спасибо тебе большое. Главное - ты меня убедил, что все правильно я делаю, просто где-то фигню спорол. А именно: запятая!! Заработало! А то я не понимал чем отличаются Get и Create. Запятой!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.06.2004 (Чт) 14:51

Первый аргумент у GetObject - имя файла, второй - имя класса. А в CreateObject имя класса - первый аргумент. Так что дело не в запятой.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList