Текущий архив: 2006.12.31;
Скачать: CL | DM;
ВнизКак отловить ошибку макроса Excel? Найти похожие ветки
← →
Тфьу (2006-08-25 14:31) [0]В Delphi вызываю Excel"овский файл и выполняю в нем макрос. Некоторые макросы отрабатывают с ошибкой. При этом на рабочем столе появляется информация, что дебаг-ошибка и программа не идет дальше, пока не закроешь дебаг. Как перекрыть эту фигню? То есть, если возникла ошибка, завершать выполнение макроса (можно даже не предупреждать программу об этом, хотя хотелось бы знать, что макрос слетел).
← →
Сергей М. © (2006-08-25 14:33) [1]Обычный try..except по идее должен спасти ОРД
← →
Наиль © (2006-08-25 14:59) [2]Такого не пробывал, но будем рассуждать логически.
Во-первых, произойдёт ли Except при ошибке в макросе?
Скорее всего - нет. Excel работает? Работает. Работать не отказывается? Не отказывается. Значит повода для Except - нет.
Во-вторых, если запуск дебагера инициируется не пользователем, то системой. Значит система должна оповестить об этом пользователя. Оповещение, как правило организовывается с помощью событий. Если учесть, что системой ответсвеной за макросы является VB, то стоит поискать у него соответсвующие появлению дебагера (что-нибудь вроде VB.OnExcept).
В-третьих, а что делать, если такого события не окажется? См. [1]. Грамотно написаная программа не должна ни куда вываливаться. То же относится и к макросам. В VB имеется собственая обработка исключений. Воспользуйся ею.
← →
Тфьу (2006-08-25 15:21) [3]Таблицы Экселя и макросы пишу не я. У меня только специфическая обработка и рассылка. Если пользователь где-то ступил не хочется бегать к серверу и нажимать дебаг. Пользователь не получив вовремя ответа или получив ошибочный ответ сам еще раз посмотрит свой макрос, данные и перезапустит.
По причине таких файлов отпадает и вариант с эксептом в макросе и т.п., зафисящее от экселя. Попробую копать интерфейс VB...
А try...except естественно ничего не ловит. Ошибки-то нет. Программа даже не знает, что что-то произошло. Мало-ли из-за чего эксел тормозит.
Буду, скорее всего, писать нить, которая бы срубала эксел, если он висит излишне долго. (через 10 минут, например...)
← →
Сергей М. © (2006-08-25 15:34) [4]Достойнгое
> Тфьу (25.08.06 15:21) [3]
> Буду.. срубала эксел
Ай малацца !
Решение, достойнгое истинного программера)
← →
clickmaker © (2006-08-25 16:28) [5]
> которая бы срубала эксел
может для начала On Error Resume Next
Ы?
← →
Сергей М. © (2006-08-25 16:33) [6]
> clickmaker © (25.08.06 16:28) [5]
судя по
> Пользователь не получив вовремя ответа или получив ошибочный
> ответ сам еще раз посмотрит свой макрос
Пользователи там, видимо, настолько "продвинутые", что сами (!) строгают свои макросы направо-налево) ... При этом говорить об их "продвинутости" насчет ON ERROR чрезвычайно сложно)
Страницы: 1 вся ветка
Текущий архив: 2006.12.31;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.043 c