共用方式為


Number 屬性

會傳回或設定指定錯誤的數值。 NumberErr 物件的預設屬性。 讀取/寫入。

註解

從物件傳回使用者定義的錯誤時,將您選取為錯誤碼的數位新增至vbObjectError常數,以設定Err.Number。 例如,您會使用下列程式碼傳回數位 1051 作為錯誤碼:

Err.Raise Number := vbObjectError + 1051, Source := "SomeClass"

範例

第一個範例說明在錯誤處理常式中一般使用 Number 屬性。 第二個範例會檢查Err物件的Number屬性,以判斷 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 支援與意見反應