Лучшим методом было бы использовать On Error GoTo ErrorHandler
со ссылкой Stop
, за которой следует Resume
.
Необходимо быть осторожным, чтобы не попасть в бесконечный цикл с resume
, так как пользовательские функции работают почтипостоянно (если это происходит, нажимайте Esc
несколько раз)
Итак, в вашем коде добавьте: On Error GoTo ErrorHandler
рядом с началом вашей функции, а затем прямо в конце перед End Function
:
Exit Function
ErrorHandler:
MsgBox Err.Number & vbCrLf & Err.Source & vbCrLf & Err.Description
Stop
Resume
Exit Function
останавливает выполнение этого кода в нормальном режиме.Если обнаружена ошибка, появится окно с подробными сведениями, код сломается (из-за Stop
), и вы можете вернуться обратно в свой код (вернуться назад с помощью оператора resume
), используя следующую команду строки напанель инструментов отладки.
Конечно, не забудьте закомментировать строку On Error GoTo ErrorHandler
, когда вы довольны своим UDF.