|
Получение списка всех открытых окон... или странная необрабатываемая ошибка
|
|||
---|---|---|---|
#18+
При помощи нижеприведенного макроса из Excel можно получить полный список имен открытых окон. Принцип работы можно посмотреть в справке по Word http://msdn.microsoft.com/ru-ru/library/ff822559.aspx#CommunityContent 'В файле использующем этот макрос - надо подключить Microsoft Word Object Library Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Обратил внимание, что данный макрос срабатывает не всегда. Например, при помощи диспетчера закрываем ВСЕ процессы WINWORD.EXE... и начинается странное Запускаем макрос - вылезает ошибка 462. Нажимаем End... запускаем по новой - все работает... Опять удаляем все ВСЕ процессы WINWORD.EXE... Пробуем проигнорировать ошибку On error resune next - не игнорируется... вылезает ошибка 462 Пробую обработать ошибку, в тайной надежде, что простой двоекратный запуск решит проблему... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Ничего не получается. Как програмно обработать ошибку? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2012, 15:21 |
|
Получение списка всех открытых окон... или странная необрабатываемая ошибка
|
|||
---|---|---|---|
#18+
Наверное это ошибка не Excel, а Word... и программа пытается обратится к уже уничтоженному экземпляру Word, не обращая внимания на только что открытый экземпляр Word... Тогда надо явно обращаться к новому экземпляру... типа Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2012, 15:39 |
|
Получение списка всех открытых окон... или странная необрабатываемая ошибка
|
|||
---|---|---|---|
#18+
Dan-K'В файле использующем этот макрос - надо подключить Microsoft Word Object Libraryв данном случае как раз не обязательно Непонятно, что за объект Tasks, откуда он берется? Dan-Kи программа пытается обратится к уже уничтоженному экземпляру Wordне пытается. Объект Tasks просто-напросто не определен - отсюда и ошибка Dan-K Код: vbnet 1.
именно так и надо, только не ясно, вы решили свою проблему или остались вопросы? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2012, 15:50 |
|
Получение списка всех открытых окон... или странная необрабатываемая ошибка
|
|||
---|---|---|---|
#18+
Проблему решил. Но без подключения библиотеки - не работает... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2012, 22:38 |
|
Получение списка всех открытых окон... или странная необрабатываемая ошибка
|
|||
---|---|---|---|
#18+
глянул описание ошибки 462: Для автоматизации Word вы определяете объектную переменную, обычно ссылающуюся на объект приложения или документа Word. Другие объектные переменные могут ссылаться на объекты Selection, Range или другие объекты объектной модели Word. При написании кода, использующего объект, метод или свойство Word всегда необходимо предварять вызов объекта, метода или свойства Word соответствующей объектной переменной. Если вы этого не сделаете, Visual Basic будет использовать ссылки на глобальные переменные, которые установлены на выполняющиеся в данное время запросы. Если Word прекратит свою работу, или если объявленная объектная переменная освободится, то скрытая глобальная переменная будет ссылаться на неверный (уничтоженный) объект. После повторного запуска кода автоматизации вызов этой скрытой объектной переменной будет завершен с вышеупомянутой ошибкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2012, 22:42 |
|
|
start [/forum/topic.php?fid=61&fpage=100&tid=2175682]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 433ms |
0 / 0 |