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. 😉
[NachObenLetzte Verweis=„CS: IntegerZahl extrahieren”]