Die VB-Eigene IsNumeric Funktion wertet automatisch ein "E" im übergebenen Ausdruck als Exponenzialschreibweise aus, was u.U. zu Verwirrungen führen kann! Will man bspw. einen Text (String) prüfen, ob dieser numerisch ist, verwendet man i.a.R. die IsNumeric Funktion von VB: Dim MyText As String MyText = "4B7" If IsNumeric(MyText) Then ... Obiges Beispiel ergibt den Wert False, d.h. der übergebene Ausdruck "4B7" wurde als "nicht numerisch" ausgewertet. Noch ein Beispiel: MyText = "4E7" If IsNumeric(MyText) Then ... Jetzt wird auf einmal der Wert True zurückgeliefert, d.h. der übergebene Ausdruck "4E7" wird als "numerisch" ausgewertet. Daher habe ich eine kleine Ersatz-Funktion erstellt, die im übergebenen Ausdruck das "E" als Buchstabe und nicht als "Zahl" auswertet, sofern es sich bei dem Ausdruck um einen String-Datentyp handelt: ' Ersatzfunktion für VBA.IsNumeric, ' da die IsNumeric von VB ein "E" als Exponenzialschreibweise auswertet, bspw. 4E7 = IsNumeric True ?!?! Public Function IsNumeric(ByVal Value As Variant) As Boolean If Not IsNull(Value) Then If varType(Value) = vbString Then IsNumeric = VBA.IsNumeric(Replace(CStr(Value), "E", "A")) Else IsNumeric = VBA.IsNumeric(Value) End If End If End Function Ab sofort liefert folgende Abfrage den (gewünschten) Rückgabewert False: MyText = "4E7" If IsNumeric(MyText) Then ... |