Поделиться через


Свойство 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 и обратная связь.