Несколько On Error в VBA — VBA On Error

VBA On Error

Я уже писал о моем отношении к конструкции в VBA On Error, но к сожалению, по работе частенько с ней встречаюсь. Поэтому сегодня я расскажу об ее одной особенности.

У меня есть макрос в Microsoft Outlook для генерации письма с поиском конкретных вложений. Раньше использовался весь потенциал конструкции VBA On Error, где первоначально шла проверка наличия самих вложений, и как следствие создания письма, и проверка одного отдельного отчета, который мог присутствовать, а мог и отсутствовать…

Позднее мне понадобилось добавить еще одну проверку нового отчета, наличие которого происходило по новой методике условий. Я решил отделаться легким испугом и дописать вторую проверку наличия вложения через VBA On Error GoTo, заметил, что если первый On Error GoTo срабатывал, то второй всегда завершился ошибкой, как-будто он не обрабатывался…
Внимательно почитав документацию и поискав в Google, я понял, что данная конструкция работает один раз в рамках процедуры или функции и решения данной проблемы нет. Именно по этому мне пришлось найти новое решение проверки вложений, о котором я писал ранее, и отказаться от всех конструкций VBA On Error!

Помните, использование конструкции в VBA On Error — это не выход из ситуации, а просто временный костыль, который в будущем может только усложнить доработку программы, старайтесь не пользоваться данной обработкой ошибок!