powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Прицепиться к экземпляру Excel, созданному по технологии Automation
5 сообщений из 5, страница 1 из 1
Прицепиться к экземпляру Excel, созданному по технологии Automation
    #37479592
energy75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые Гуру!
Есть такая задача:
Стороннему приложению (SAP R/3) дают задачу: сгенерировать отчет и показать его в формате Эксель. При этом по определенному признаку отчеты изготавливаются сразу большим диапазоном, поэтому имеем дело сразу с большим количеством открытых книг Эксель. Книги появляются со скоростью 1 книга в 5 сек. Дожидаюсь появления например двадцати книг. Впереди еще 300. Закрываю книги одну за другой щелкая на крестик или закрываю все сразу кликая на иконке группы экселевских файлов -закрыть группу. При этом в Диспетчере Задач наблюдаю все 20 экземпляров эксель!!! Что за фигня???

Пытаюсь прицепиться с книгам:
Код: plaintext
1.
2.
3.
4.
set app = GetObject(,"Excel.Application")
For Each wb In app.Workbooks
wb.close
Next 

Этот код ничего не дает и это понятно, ведь открыто множество экземпляров Эксель, а не множество книг.
Свойство app.Windows.Count дает единицу, поэтому перебрать в цикле app.Windows(...) тоже не получается. А мне крайне необходимо сохранять эти файлы под именем в зависимости от их содержимого.

Запуск из Аксесса вот такого кода дает результат лишь для одной книги, после ее закрытия в msgbox всегда какой-то "лист1"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
For r =  1  To  100 
Dim app As Excel.Application
Set app = GetObject(, "Excel.Application")
MsgBox app.Caption
' анализ файла и его сохранение пока не интересует
app.Quit
Set app = Nothing
Next

Я понимаю, что многабукав, и что может несовсем понятно чего я хочу, и все же очень надеюсь на помощь!
...
Рейтинг: 0 / 0
Прицепиться к экземпляру Excel, созданному по технологии Automation
    #37479595
energy75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл сказать, что заранее неизвестно какое имя сгенерирует SAP R/3 для файла Эксель.
...
Рейтинг: 0 / 0
Прицепиться к экземпляру Excel, созданному по технологии Automation
    #37479653
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
energy75Запуск из Аксесса вот такого кода дает результат лишь для одной книги, после ее закрытия в msgbox всегда какой-то "лист1"

и что из этого следует ?
активная страница в книге, открытой в текущем (выбранном) Аппликейшион - лист1, и что ?

в руссиф.экселе, это страница(ы) которая(ы) создаётся(ются) при создании новой книги, по-умолчанию (регулир.параметром в экселе; у меня, например, создаются 3-и стр.)

скорее всего, САП, НЕ удаляет эту страницу, создаёт новую страницу, НЕ активирует эту страницу... вот и всё,

а приложение, каждый раз после Set app = GetObject(, "Excel.Application") - новое
...
Рейтинг: 0 / 0
Прицепиться к экземпляру Excel, созданному по технологии Automation
    #37479688
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
energy75, ответили здесь:
http://www.planetaexcel.ru/forum.php?thread_id=32751
...
Рейтинг: 0 / 0
Прицепиться к экземпляру Excel, созданному по технологии Automation
    #37479736
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хороший пример
Код: plaintext
1.
2.
3.
Public Sub killTask()
killString = "taskkill /F /IM excel.exe"
Call Shell(killString, vbHide)
End Sub
можно и в копилочку добавить.
Кстати Сергей я тоже через terminate убивал процесс :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Прицепиться к экземпляру Excel, созданному по технологии Automation
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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