Другие люди используют мои книги, и у меня есть простая техника, которую я использую при написании обработчиков ошибок, которая упрощает решение проблем в случае сбоя макроса. Каждая процедура, которая является рискованной, содержит локальную строковую переменную sOp, значение которой устанавливается в коде макроса следующим образом:

Dim sOp As String ...



...

sOp = "opening target file"

...



...

sOp = "counting lines already filled"

...



...

sOp = "copying source data table"

...



...

sOp = "saving and closing"

...

Эти утверждения — не что иное, как примечания, но они имеют то преимущество, что при возникновении ошибки пользователь может быть проинформирован о том, что происходило в то время. В простейшем случае обработчик ошибок просто должен содержать один оператор вроде этого:

MsgBox "Procedure MyMacro failed while " + vbCrLf + sOp

Значение sOp также может использоваться для определения следующего действия (возобновление, выход и т. Д.). Использование этого метода в ваших собственных макросах может упростить их отладку и сделать их более удобными для пользователей.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2597) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Friendly_and_Informative_Error_Handling [Дружественная и информативная обработка ошибок].