hier mal ein Beispielmakro, welches die Lösung verdeutlicht:
Viel Spaß,
Andreas
vielleicht kommst Du mit der IsNumeric()-Funktion schon weiter.
Allerdings werden hier auch Zahlen mit Nachkommastellen erkannt (deswegen auch IsNumeric() und nicht IsInteger())
Gruß
Axel
Um zu überprüfen, ob der Wert einer textbox.value
ein String oder ein Integer ist, kannst Du ein einfaches VBA-Makro verwenden. Hier ist ein Beispiel, wie Du dies umsetzen kannst:
Function CheckValue(value As Variant) As String
If IsNumeric(value) Then
If Int(value) = value Then
CheckValue = "Integer"
Else
CheckValue = "Numeric (mit Nachkommastellen)"
End If
ElseIf VarType(value) = vbString Then
CheckValue = "String"
Else
CheckValue = "Unbekannter Typ"
End If
End Function
Jetzt kannst Du die Funktion CheckValue
aufrufen, um den Typ des Wertes in einer Textbox zu überprüfen:
Dim result As String
result = CheckValue(Me.TextBox1.Value)
MsgBox "Der Wert ist: " & result
Fehler: "Typ nicht definiert"
Variant
ist eine gute Wahl, um unterschiedliche Typen zu akzeptieren.Fehler: Die Funktion gibt immer "Unbekannter Typ" zurück
textbox.value
tatsächlich einen Wert enthält. Möglicherweise ist die TextBox
leer oder der Wert wurde nicht korrekt übergeben.Eine andere Möglichkeit, um zu prüfen, ob textbox.value
ein Integer oder ein String ist, ist die Verwendung der IsInteger
-Funktion. Diese Funktion kann wie folgt genutzt werden:
If IsNumeric(Me.TextBox1.Value) Then
If IsInteger(Me.TextBox1.Value) Then
MsgBox "Der Wert ist ein Integer."
Else
MsgBox "Der Wert ist kein Integer, sondern eine Zahl mit Nachkommastellen."
End If
Else
MsgBox "Der Wert ist ein String."
End If
Hier sind einige praktische Beispiele, wie Du die oben genannten Methoden in Deiner Excel-Anwendung verwenden kannst:
Private Sub CommandButton1_Click()
Dim result As String
result = CheckValue(Me.TextBox1.Value)
MsgBox "Der Wert in der Textbox ist: " & result
End Sub
If IsNumeric(Me.TextBox1.Value) And IsInteger(Me.TextBox1.Value) Then
MsgBox "Der Wert ist ein Integer."
ElseIf VarType(Me.TextBox1.Value) = vbString Then
MsgBox "Der Wert ist ein String."
End If
Option Explicit
-Anweisung am Anfang jedes Moduls. Sie zwingt Dich dazu, alle Variablen zu deklarieren, was Fehler reduziert.Debug.Print
, um Werte während der Entwicklung im Direktfenster auszugeben. Das hilft Dir, den Fluss Deines Codes zu verstehen.Trim
für textbox.value
, um sicherzustellen, dass führende oder nachfolgende Leerzeichen nicht die Auswertung beeinflussen.1. Was ist der Unterschied zwischen IsNumeric und IsInteger in VBA?
IsNumeric
prüft, ob ein Wert eine Zahl ist, einschließlich Zahlen mit Nachkommastellen. IsInteger
prüft spezifisch, ob der Wert ein Integer ist.
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, die genannten Funktionen und der VBA-Code sind in allen gängigen Excel-Versionen verfügbar. Achte darauf, dass Du den VBA-Editor korrekt öffnest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen