Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Как отловить ошибку макроса 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
5-1145509871
Lanc
2006-04-20 09:11
2006.12.31
Как определить предка?


15-1164881140
Rule
2006-11-30 13:05
2006.12.31
Опять я со своиим вопросами про кроссплатформенность а точнее про


15-1165976723
Mozart
2006-12-13 05:25
2006.12.31
сom порт


15-1165323891
Экспериментатор
2006-12-05 16:04
2006.12.31
Жесткий диск в режиме PIO


1-1163315458
Axis_of_Evil
2006-11-12 10:10
2006.12.31
TListBox с ручной отрисовкой





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский