Свойство Number
Возвращает или задает числовое значение, определяющее ошибку. Number — это свойство объекта Err по умолчанию. Для чтения и записи.
Замечания
При возврате определяемой пользователем ошибки из объекта задайте значение Err.Number , добавив число, выбранное в качестве кода ошибки, в константу vbObjectError . Например, для возвращения числа 1051 в качестве кода ошибки может использоваться следующий код:
Err.Raise Number := vbObjectError + 1051, Source := "SomeClass"
Пример
В первом примере показывается типичное использование свойства Number в процедуре обработки ошибок. Во втором примере проверяется свойство Number объекта Err, чтобы определить, определяется ли ошибка, возвращенная объектом Automation, этим объектом или она сопоставляется ошибке, определенной Visual Basic.
Обратите внимание, что константа vbObjectError — это очень большое отрицательное число, которое объект добавляет к своему собственному коду ошибки, чтобы показать, что ошибка определена сервером. Следовательно, его вычитание из Err.Number удаляет его из результата.
Если ошибка определена объектно, базовый номер остается в MyError
, который отображается в окне сообщения вместе с исходным источником ошибки. Если Err.Number представляет ошибку Visual Basic, в окне сообщения отображается номер ошибки Visual Basic.
' Typical use of Number property
Sub test()
On Error GoTo out
Dim x, y
x = 1 / y ' Create division by zero error
Exit Sub
out:
MsgBox Err.Number
MsgBox Err.Description
' Check for division by zero error
If Err.Number = 11 Then
y = y + 1
End If
Resume
End Sub
' Using Number property with an error from an
' Automation object
Dim MyError, Msg
' First, strip off the constant added by the object to indicate one
' of its own errors.
MyError = Err.Number - vbObjectError
' If you subtract the vbObjectError constant, and the number is still
' in the range 0-65,535, it is an object-defined error code.
If MyError > 0 And MyError < 65535 Then
Msg = "The object you accessed assigned this number to the error: " _
& MyError & ". The originator of the error was: " _
& Err.Source & ". Press F1 to see originator's Help topic."
' Otherwise it is a Visual Basic error number.
Else
Msg = "This error (# " & Err.Number & ") is a Visual Basic error" & _
" number. Press Help button or F1 for the Visual Basic Help" _
& " topic for this error."
End If
MsgBox Msg, , "Object Error", Err.HelpFile, Err.HelpContext
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.