Integer-Zahl aus String extrahieren

Eine Ganzzahl (ohne Nachkommastellen)
aus einer Zeichenkette extrahieren

Mit den folgenden Funktionen werden Ganzzahlen aus einem String extrahiert. Ist keine Zahl im String enthalten, wird "" (Leerstring) zurück gegeben. Die namen der Funktionen sind selbst erklärend. Wie Sie eine Funktion in Ihre Mappe einbinden, können Sie hier in unserem Blog nachlesen.

Function intZahlVonLinks(str As String) As Variant
   Dim i As Integer, ZahlGefunden As Boolean
   For i = 1 To Len(str)
      If Not IsNumeric(Mid(str, i, 1)) Then Exit For
   Next i
   If i = 1 And Not IsNumeric(Left(str, 1)) Then
      intZahlVonLinks = ""
   Else
      intZahlVonLinks = CLng(Left(str, i - 1))
   End If
End Function
'----------------------------------------------------------
Function intZahlVonRechts(str As String) As Variant
   Dim i As Integer, ZahlGefunden As Boolean
   For i = Len(str) To 1 Step -1
      If Not IsNumeric(Mid(str, i, 1)) Then Exit For
   Next i
   If i = Len(str) And Not IsNumeric(Right(str, 1)) Then
      intZahlVonRechts = ""
   Else
      intZahlVonRechts = CLng(Mid(str, i + 1, 999))
   End If
End Function
'----------------------------------------------------------
Function intZahlMittig(str As String) As Variant
   Dim i As Integer, k As Integer, ZahlGefunden As Boolean
   For i = 1 To Len(str)
      If IsNumeric(Mid(str, i, 1)) Then
         ZahlGefunden = True
         Exit For
      End If
   Next i
   For k = i To Len(str)
      If Not IsNumeric(Mid(str, k, 1)) Then Exit For
   Next k
   If ZahlGefunden Then
      intZahlMittig = CLng(Mid(str, i, k - i))
   Else
      intZahlMittig = ""
   End If
End Function

… und ja, es geht auch kürzer und etwa schneller. Aber dieser Code ist einfach besser lesbar und auch leichter anpassbar als beispielsweise RegEx-Formulierungen. 😉

▲ nach oben …

Dieser Beitrag wurde unter Code-Schnipsel, Mit VBA/Makro, Rechnen & Zahlen, Suchen und finden abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.