16 / 16 / 0
Регистрация: 10.09.2012
Сообщений: 113
|
||||||
1 | ||||||
Управление ошибками в VBA. Операторы On Error, Resume, объект Err17.12.2012, 16:13. Показов 35501. Ответов 9
Метки нет (Все метки)
Информация из интернета:
Ошибки в VBA можно разделить: Кликните здесь для просмотра всего текста
Возбуждение ошибки может быть сделано самой операционной системой (VBA) или исполняемой процедурой(почти все они классифицированы и каждая из них однозначно идентифицируется своим номером). Собственные или пользовательские ошибки, возбуждение которых предусматривает программист,например, при работе с объектом пользовательского класса . При возбуждении ошибки (внутренней или пользовательской), в момент возбуждения ошибки заполняются свойства объекта Err, так что он содержит всю информацию о последней возникшей ошибке. Синтаксически охраняемый блок окружен специальными операторами On Error. Обработчик ошибок, как правило, завершается специальным оператором Resume, который задает точку в процедуре, которой передается управление после завершения обработки ошибки. Схема процедуры с тремя охраняемыми блоками (разные варианты обработки ошибок): Кликните здесь для просмотра всего текста
Варианты комбинаций операторов On Error и Resume: Кликните здесь для просмотра всего текста
On Error GoTo строка; On Error Resume Next; On Error GoTo 0; On Error Resume (или On Error Resume (0) ) On Error GoTo строка - управление покидает охраняемый блок и передается на указанную строку, запуская, тем самым, обработчик ошибок, начинающийся в этой строке. On Error Resume Next - такая ситуация разумна, когда вслед за оператором, при выполнении которого потенциально возможна ошибка,помещается оператор, анализирующий объект Err. On Error GoTo 0 -он завершает охраняемый блок. Оператор можно опускать, если охраняемый блок завершается вместе с самой процедурой. On Error Resume (или On Error Resume (0) ) - выполнение программы продолжается с повторного выполнения оператора, вызвавшего ошибку. Используется,например, когда ошибка вызвана вводом неверных данных пользователем, а в обработчике ошибок у него запрашиваются новые правильные данные. Объект Err Кликните здесь для просмотра всего текста
Объект Err содержит информацию о последней ошибке выполнения. Объект Err создается системой вместе с проектом. Очистка объекта Err может производиться принудительно (использование метода Clear): Err.Clear Автоматическая очистка свойств объекта Err происходит также при выполнении операторов: оператора Resume любого вида; Exit Sub, Exit Function, Exit Property ; оператора On Error любого вида.
4
|
17.12.2012, 16:13 | |
Ответы с готовыми решениями:
9
On Error Resume Next On Error Resume Next Cpu fan error press f1 to resume Вызов отчета из формы (On error resume next) |
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
|
17.12.2012, 16:59 | 2 |
Maxsss, сложным языком написано. Думаю, что специалисты и так знают, как работать с ошибками, а для новичков эта тема ничем не легче для восприятия, чем информация, которая есть, наверное, в любом справочнике по VBA на русском языке.
0
|
|
17.12.2012, 18:00
#3
|
Не по теме: Скрипт, да ладно придираться.
2
|
16 / 16 / 0
Регистрация: 10.09.2012
Сообщений: 113
|
|
17.12.2012, 18:00 [ТС] | 4 |
Скрипт,
просто хотелось подитожить предыдущую дискуссию об ошибках. Но т.к. изначально ТА тема касалась другого, я и вынес "подитог" в отдельную тему. А если у кого-то возникнет вопрос, его же всегда можно задать в этой теме - кто-нибудь ответит. По поводу справочников по VBA на русском (полноценных, как встроенная справка по VBA) : не подскажешь, где их можно найти - я не встречал.
0
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
|
17.12.2012, 18:44 | 5 |
Maxsss, в этой теме я про справочники упомянул в отношении обработок ошибок - в каждом справочнике по VBA, я думаю, есть раздел про работу с ошибками.
Не знаю, какой справочник хороший. Я через форумы и гугл VBA изучал. В справочники очень редко заглядывал.
1
|
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 1
|
|
10.06.2016, 09:16 | 6 |
Скрипт, я далеко не профессионал, пользуюсь очень редко для расширения возможностей экселя и доп. взаимодействия. Для меня данная статья оказалось очень полезной!
0
|
3 / 3 / 0
Регистрация: 26.07.2019
Сообщений: 34
|
|
31.07.2019, 22:34 | 7 |
Столкнулся с ошибкой Application.VLookup Error 2042 (Н/Д).
Не получается осуществить логику: Если при x = 1, Впр(х)= ошибка, то x=x+1 возвращаюсь к ВПР(х) и т.д. (х = 3,4......) Подскажите, как это правильно прописать
0
|
89 / 49 / 18
Регистрация: 03.06.2019
Сообщений: 187
|
||||||
31.07.2019, 23:35 | 8 | |||||
Логика в цикле, примерно так:
0
|
3 / 3 / 0
Регистрация: 26.07.2019
Сообщений: 34
|
||||||
01.08.2019, 00:44 | 9 | |||||
Не выходит, как я понял error это когда макрос не может продолжить свою работу из-за ошибки, но с ошибкой н/д макрос продолжает свою работу до тех пор пока с впр(х) не будут производится действия
Вот если y =впр(х) /1 то тогда срабатывает появляется ошибка 13, с которой можно продолжить работу по этой логике , но такой вариант слишком громоздкий
0
|
89 / 49 / 18
Регистрация: 03.06.2019
Сообщений: 187
|
|
01.08.2019, 08:18 | 10 |
0
|
01.08.2019, 08:18 | |
01.08.2019, 08:18 | |
Помогаю со студенческими работами здесь
10
Когда имеет смысл ставить "on Error Resume Next" On Error Resume Next только для ограниченного набора строк Есть ли в ASP аналог команды VB6 - On Error Resume Next? При загрузки вылазиет CPU fan error Resume press F1 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |