Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prüfen ob String auch Zahl ist

Prüfen ob String auch Zahl ist
01.03.2008 21:42:41
Peter
Guten Abend
Ich möchte in meinem Code prüfen, ob ein String eine Zahl ist.
Wie geht das?
Mit isnumber bin ich nicht weitergekommen.
Gruss, Peter

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IsNumeric() ist die Lösung owt
01.03.2008 21:47:51
Daniel
'Gruß, Daniel

IsNumeric ... (aktive Zelle)
01.03.2008 21:48:00
Matthias
Hallo

Sub test()
If IsNumeric(ActiveCell) Then
MsgBox "Zahl"
Else
MsgBox "keine Zahl"
End If
End Sub


Gruß Matthias

Vielen Dank!, owT
01.03.2008 21:54:00
Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Prüfen, ob ein String eine Zahl ist


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu prüfen, ob ein String eine Zahl ist, kannst du die Funktion IsNumeric verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA)-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "Projekt" > "Einfügen" > "Modul").

  3. Kopiere den folgenden Code in das Modul:

    Sub test()
       If IsNumeric(ActiveCell.Value) Then
           MsgBox "Zahl"
       Else
           MsgBox "keine Zahl"
       End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Wähle eine Zelle aus, die einen String enthalten könnte.

  6. Führe das Makro aus (Alt + F8, wähle "test" und klicke auf "Ausführen").

Nun wirst du eine Meldung erhalten, die dir sagt, ob der Inhalt der aktiven Zelle eine Zahl ist oder nicht.


Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung"
    Dies kann auftreten, wenn du versuchst, IsNumeric auf einen nicht unterstützten Datentyp anzuwenden. Stelle sicher, dass der Wert in der Zelle ein String ist.

  • Fehler: "Nichts passiert"
    Wenn das Makro nicht funktioniert, überprüfe, ob die Zelle tatsächlich einen Wert hat und ob das Makro korrekt ausgeführt wurde.


Alternative Methoden

Neben der Verwendung von IsNumeric kannst du auch andere Methoden anwenden:

  • Verwendung von VBA.IsNumeric: Diese Methode funktioniert ähnlich wie die oben genannte. Sie kann in Access VBA verwendet werden, um zu prüfen, ob ein String in eine Zahl umgewandelt werden kann.

  • Regex: Wenn du spezifische Zahlenformate prüfen möchtest (z.B. nur ganze Zahlen), kannst du reguläre Ausdrücke verwenden.

Hier ist ein einfaches Beispiel:

Function IstZahl(ByVal str As String) As Boolean
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.Pattern = "^\d+$" ' Nur ganze Zahlen
    IstZahl = regEx.Test(str)
End Function

Praktische Beispiele

Hier sind einige Beispiele, wie du Strings in Zahlen umwandeln und überprüfen kannst:

  1. Zahl aus String extrahieren:

    Dim myString As String
    Dim myNumber As Double
    
    myString = "123.45"
    myNumber = CDbl(myString) ' Wandelt den String in eine Zahl um
  2. Prüfen, ob eine Zelle eine Zahl enthält:

    If Not IsEmpty(Range("A1").Value) Then
       If IsNumeric(Range("A1").Value) Then
           MsgBox "Die Zelle A1 enthält eine Zahl."
       Else
           MsgBox "Die Zelle A1 enthält keine Zahl."
       End If
    End If

Tipps für Profis

  • Nutze die Funktion Application.WorksheetFunction.IsNumber, wenn du direkt auf Excel-Funktionen in VBA zugreifen möchtest.
  • Wenn du mit vielen Daten arbeitest, solltest du die Leistung im Auge behalten. Vermeide unnötige Schleifen und benutze Arrays, um Daten in großen Mengen zu verarbeiten.
  • Überlege, ob du mit VBA string to double arbeiten willst, um sicherzustellen, dass die Umwandlungen korrekt durchgeführt werden.

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob eine ganze Zahl in einer Zelle steht?
Verwende die Funktion IsNumeric in Kombination mit einer Überprüfung auf Ganzzahl:

If IsNumeric(Range("A1").Value) And Range("A1").Value = Int(Range("A1").Value) Then
    MsgBox "Die Zelle enthält eine ganze Zahl."
End If

2. Was ist der Unterschied zwischen IsNumeric und Application.WorksheetFunction.IsNumber?
IsNumeric prüft, ob der Wert in einen Zahlentyp umgewandelt werden kann, während IsNumber spezifisch überprüft, ob der Wert bereits eine Zahl ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige