Verwendung von IsNumeric und IsNumber in VBA
In this Article
In diesem Tutorial lernen Sie, wie Sie die Funktionen IsNumeric und IsNumber in VBA verwenden, um zu prüfen, ob Werte Zahlen sind.
IsNumeric ist eine integrierte VBA-Funktion, während IsNumber eine Excel-Funktion ist, die von VBA-Code aus aufgerufen werden kann.
Unterschied zwischen IsNumber und IsNumeric in VBA
IsNumber prüft, ob ein Wert als Zahl gespeichert ist. IsNumeric hingegen prüft, ob ein Wert in eine Zahl umgewandelt werden kann.
Wenn Sie zum Beispiel eine leere Zelle als Parameter übergeben, gibt IsNumber FALSE zurück, während IsNumeric TRUE zurückgibt. Auch wenn Sie eine Zelle übergeben, die eine als Text gespeicherte Zahl enthält, gibt IsNumber FALSE und IsNumeric TRUE zurück.
Sie müssen diese Einschränkungen der beiden Funktionen beachten und entscheiden, in welchen Fällen es besser ist, IsNumeric oder IsNumber zu verwenden.
Verwendung von IsNumeric in VBA
IsNumeric ist die VBA-Funktion, die prüft, ob ein Wert numerisch ist, und als Ergebnis ein boolesches TRUE oder FALSE zurückgibt.
Die Funktion kann eine Variable oder einen Zellenwert annehmen.
Hier kommt ein Beispiel für die Verwendung eines Zellenwerts:
If IsNumeric(Sheet1.Range("A1").Value) = True Then
MsgBox "Der Wert in A1 ist numerisch"
Else
MsgBox "Der Wert in A1 ist nicht numerisch"
End If
In diesem Beispiel wird mit der Funktion IsNumeric geprüft, ob der Wert in Zelle A1 numerisch ist. Diese Funktion gibt je nach Ergebnis der Funktion die entsprechende Meldung zurück.
Das nächste Beispiel führt die gleiche Operation durch, allerdings mit einer Variablen anstelle eines Zellenwerts:
Dim n as Variant
n = Sheet1.Range("A1").Value
If IsNumeric(n) = True Then
MsgBox "Der Wert in A1 ist numerisch"
Else
MsgBox "Der Wert in A1 ist nicht numerisch"
End If
Verwendung von IsNumber in VBA
IsNumber ist eine Excel-Funktion, die in VBA verwendet werden kann. Sie hat eine fast ähnliche Ausgabe wie IsNumeric. Schauen wir uns ein Beispiel für die IsNumber-Funktion an:
If Application.WorksheetFunction.IsNumber(Sheet1.Range("A1").Value) = True Then
MsgBox "Der Wert in A1 ist numerisch"
Else
MsgBox "Der Wert in A1 ist nicht numerisch"
End If
Wie Sie aus dem Code erkennen können, besteht der Unterschied in der Syntax beim Aufruf der Funktion. Da IsNumber die Excel-Funktion ist, müssen wir Application.WorksheetFunction vor den Funktionsaufruf setzen.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!