VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: Number-Eigenschaft (Beispiel)

Im ersten Beispiel wird die typische Verwendung der Number-Eigenschaft in einer Fehlerbehandlungsroutine dargestellt. Im zweiten Beispiel wird die Number-Eigenschaft des Err-Objekts untersucht, um zu bestimmen, ob ein Fehler, der von einem Automatisierungsobjekt zurückgegeben wurde, durch das Objekt definiert wurde oder ob der Fehler einem Fehler zugeordnet wurde, der von Visual Basic definiert wurde. Beachten Sie, daß die Konstante vbObjectError eine sehr große negative Zahl ist, die von einem Objekt zum zugehörigen Fehler-Code addiert wird, um anzugeben, daß der Fehler durch den Server definiert ist. Die Konstante wird deshalb durch Subtraktion von Err.Number aus dem Ergebnis ausgeschlossen. Wenn der Fehler objektdefiniert ist, ist die Basiszahl in Fehler1 gespeichert, der in einem Meldungsfeld zusätzlich zum Ursprung des Fehlers angezeigt wird. Wenn Err.Number einen Visual Basic-Fehler darstellt, wird die Visual Basic-Fehlernummer in dem Meldungsfeld angezeigt.

' Typische Verwendung der Number-Eigenschaft
Sub test()
    On Error GoTo out
    
    Dim x, y
    x = 1 / y    ' Erzeugen eines Fehlers "Division durch Null"
    Exit Sub
    out:
    MsgBox Err.Number
    MsgBox Err.Description
    ' Prüfen auf den Fehler "Division durch Null"
    If Err.Number = 11 Then
        y = y + 1
    End If
    Resume
End Sub
' Verwenden der Number-Eigenschaft mit einem Fehler von
' einem Automatisierungsobjekt
Dim Fehler1, Mldg
' Zuerst Konstante abziehen, die von dem
' Objekt addiert wurde, um einen dem Objekt zugehörigen Fehler
' anzugeben.
Fehler1 = Err.Number - vbObjectError
' Wenn Sie die vbObjectError-Konstante subtrahieren und
' die Nummer liegt immer noch im Bereich von 0-65.535,
' handelt es sich um einen objektdefinierten Fehler-
' Code.
If Fehler1 > 0 And Fehler1 < 65535 Then
    Mldg = "Das Objekt, auf das Sie zugegriffen haben, hat diese " & _
        "Nummer dem folgenden Fehler zugewiesen: " _
             & Fehler & ". Der Ursprung des Fehlers war: " _
            & Err.Source & ". Drücken Sie F1, um das Hilfethema des Ursprungs anzuzeigen."
' Andernfalls handelt es sich um eine Visual Basic-Fehlernummer.
Else
    Mldg = "Dieser Fehler (" & Err.Number & ") ist eine Visual Basic-Fehlernummer." & _
            "Drücken Sie F1 oder HILFE, oder klicken Sie auf die Hilfe-Schaltfläche, " _
            & "um das Visual Basic-Hilfethema für diesen Fehler anzuzeigen."
End If
    MsgBox Mldg, , "Objektfehler", Err.HelpFile, Err.HelpContext