| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Глобальная обработка ошибок |
| Автор: Medved 24.6.2005, 03:53 |
| Сабж. |
| Автор: likhobory 24.6.2005, 09:48 |
| сей текст |
| Автор: Medved 24.6.2005, 12:17 |
| Это все хорошо, спасибо за информацию, но мне нужна именно глобальная обработка ошибок, т.е. когда обработка ошибок происходит в одном месте. Можно конечно через WinAPI выкрутиться, но меня это не устраивает. Это сколько же кода надо писать, у меня времени совсем нет. Да и время чистого WinAPI уже прошло. |
| Автор: likhobory 24.6.2005, 12:54 | ||
ну а кто мешает
|
| Автор: Medved 24.6.2005, 13:39 |
| А... это не глобальная обработка ошибок, это пародия на нее, все равно мне придется локально всезде обрабатывать их, а потом уже передавать в глобальную процедуру. Это не есть гуд, нужно так чтобы эта процедура сама ошибки перехватывала. Лучше уж тогда через WinAPI просто перехватывать виндовозные сообщения об ошибках. (2likhobory, не обижайтесь пожалуйста, это камень не в ваш огород, еще раз спасибо, что откликнулись и уделили внимание этому вопросу.) |
| Автор: likhobory 24.6.2005, 14:20 |
| Pegas, речь ведь шла о VBA, а это максимум, на что он способен, так что WinApi здесь весьма подходящий костыль |
| Автор: Medved 24.6.2005, 15:00 |
| Понял. Вопрос снят. Что хотел узнать, то узнал. Спасибо. |
| Автор: Staruha 2.7.2005, 13:21 | ||||
| likhobory почти как в твоем коде получилось. Создала таблицу ошибок.Чтение таблицы в модуль кинула.Наверно такая библиотека есть и как в нее влезть? модуль
код
|
| Автор: likhobory 2.7.2005, 15:47 | ||||||
| справедливости ради еще раз замечу, что вышеуказанный перевод "родной" офисной справки принадлежит не мне а описание возможных ошибок можно получить в той же справке, указав в поиске Trappable Errors по поводу приведенных примеров, позволь отметить ряд моментов: в обработчике Worksheet_Change перед изменением значения ячейки пропиши
иначе войдешь в бесконечный цикл, а затем не забудь все вернуть на круги своя для генерации конкретной ошибки можем использовать метод RAISE, но вне функции обработки ошибок, иначе опять зациклимся, поскольку в указанном примере при генерации ошибки мы попадаем в обработчик родительской процедуры (Worksheet_Change)
для получения описания (англоязычного) - Err.Description
|
| Автор: Staruha 2.7.2005, 16:20 |
| Мне тут долго разбираться. Вот только про зацикливание. Это действительно имело место. Но методом тыка я это устранила и вышеуказанный код не зацикливается.Или это только у меня на компе? |
| Автор: likhobory 2.7.2005, 18:43 | ||
можно поподробнее ?? |
| Автор: Staruha 4.7.2005, 19:20 |
| Я все поняла,подробней неохота. |
| Автор: Staruha 5.7.2005, 20:07 | ||
Как бы мой случай опровергает это.Или я не все поняла? |
| Автор: likhobory 12.7.2005, 20:28 | ||||
он это подтверждает, но ты можешь вызывать функцию/процедуру из подпрограммы обработки ошибок, что, собственно и происходит
|
| Автор: Staruha 12.7.2005, 20:33 |
| |