Если вы не знакомы с ссылка: / VBA-примеры ошибок обработки [Обработка ошибок]

тем не менее, мы настоятельно рекомендуем вам прочитать этот пример первым. При возникновении ошибки в Excel VBA, свойство объекта Err заполнены информацией.

Ситуация:

Ниже программа вычисляет квадратный корень из числа.

Err Object in Excel VBA

  1. Поместите командную кнопку

на листе и добавьте следующие строки кода:

Dim rng As Range, cell As Range

Set rng = Selection

For Each cell In rng

On Error GoTo InvalidValue:

cell.Value = Sqr(cell.Value)

Next cell

Exit Sub

InvalidValue:

MsgBox Err.Number & " " & Err.Description & " at cell " & cell.Address

Resume Next

Результат при выборе Range ( «B2: B6») и нажмите кнопку команды на листе:

Err Object Result

Err Object Result

Объяснение: при возникновении ошибки, число свойства объекта Err заполнено с уникальным номером ошибки текущей ошибки и описанием имуществом заполняются с описанием ошибки текущей ошибки.

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

InvalidValue:

Select Case Err.Number

Case Is = 5

MsgBox "Can't calculate square root of negative number at cell " & cell.Address

Case Is = 13

MsgBox "Can't calculate square root of text at cell " & cell.Address

End Select

Resume Next

Подсказка: пройти через нашу ссылку: / VBA-примеры-выбор регистр [Select Case] программы для более узнать о структуре Select Case.

Результат:

Friendly Message

Friendly Message