Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.064 c
2-1165901349
Данил.Ялта
2006-12-12 08:29
2006.12.31
Загрузка файлов и превращение html->txt


15-1165956112
hell
2006-12-12 23:41
2006.12.31
вирус


2-1165860520
M1sT
2006-12-11 21:08
2006.12.31
Как и где правильно хранить пароль администратора программы?


4-1155909771
Alex81
2006-08-18 18:02
2006.12.31
По процессу определить путь к файлу


3-1160737584
Antoxa2005
2006-10-13 15:06
2006.12.31
Подскажите, а как сменить пароль пользователя SYSDBA программно?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский