Autor: Peter Haserodt --- Aus Excel VBA - Gruppe:
VerschiedenesFehlerquellen (4) - Value trifft auf Error
Autor: Peter Haserodt - Erstellt: -- - Letzte Revision: --Gruppenthema: 4 Folgen 1 2 3 4 Sie sind in Folge:4
Value trifft auf Error
Liest man eine Zelle über ihre Value Eigenschaft aus, kann es sehr schnell zu Problemen kommen.
Nämlich dann, wenn in der Zelle ein "Fehler" steckt.
Ein kleines Beispiel:
Public Sub Oh_Ein_Fehler()
Dim oRange As Range
Set oRange = Range("b2")
Debug.Print Len(oRange.Value) ' Erzeugt Fehler
End Sub
Sie werden jetzt sicherlich sagen:
So ein Fehler kann doch gar nicht auftauchen!
Aber Hallo, was meinen Sie, wieviele Fehler auftauchen können???
Hierzu gehören nämlich auch solche Sachen wie #Bezug.
Aber wir können solche Fehler abfangen:
Public Sub Oh_Ein_Fehler_Nicht_Mit_Mir()
Dim oRange As Range
Set oRange = Range("b2")
If IsError(oRange.Value) Then
MsgBox "Fehler - Fehler: Wir haben Ihn"
Else
Debug.Print Len(oRange.Value) ' Erzeugt Fehler
End If
End Sub
Gemein in Feldern
Hier kann es richtig schwierig werden, solch einen Fehler zu finden.
Stellen Sie sich vor, Sie lesen Felder ein und bearbeiten diese und irgendwo taucht auf einmal ein Error auf.
Herauszufinden warum auf einmal nichts mehr klappt was doch sonst tadelos durchläuft ist nicht einfach.
Public Sub FeldFehler()
Dim vMeinFeld As Variant, i As Long
vMeinFeld = Range("b2:b4").Value
For i = 1 To UBound(vMeinFeld)
Debug.Print Len(vMeinFeld(i, 1)) ' Erzeugt Fehler bei i = 2
Next i
End Sub
Selbstverständlich können Sie jetzt diesen Fehler bearbeiten, wie oben vorgestellt.
Quintessenz:
Nach dem Motto: "Traue keiner Statistik, die du nicht selbst gefälscht hast ..." ist es unumgänglich in solchen Situationen, in welchen Sie diese Daten nicht selbst erzeugt haben und sich sicher sein können, dass kein Fehler vorliegt, auf IsError zu überprüfen.
Noch ein Hinweis: Die Text-Eigenschaft hat hier nicht das Problem - aber in vielen Fällen arbeitet man mit der Value-Eigenschaft.
Weitere Artikel der Gruppe: Verschiedenes Aus Excel VBA
Nach oben