Когда вы используете оператор «On Error GoTo», вы сообщаете программе, что при обнаружении ошибки переходите к определенной строке в текущей процедуре. Например:
On Error GoTo ErrorHandler
x = 10 / 0
msgbox "x = infinity!"
ErrorHandler:
msgbox "Cannot divide by zero"
В этом примере, когда код обнаруживает ошибку (после моего оператора «On Error»), он останавливает свою работу и начинает выполнять код с меткой ErrorHandler (это метка из-за двоеточия в конце). Запустив этот код, вы никогда не увидите окно с сообщением x = бесконечность. Как только он попадает в ошибку, пытаясь поделить на ноль, он перейдет к метке ErrorHandler и выдаст мне сообщение о невозможности деления на ноль.
Чип Пирсон имеет хорошее введение в базовую обработку ошибок здесь .