Zahl aus Text extrahieren

Die Aufgabe

Die erste Zahl, die in einem Text vorkommt, soll extrahiert werden. Es handelt sich um eine Zahl ohne Nachkommastellen. Eine Funktion soll den Wert als Zahl zurückgeben.

Zugegeben, es gibt verschiedene Wege, das auch mit Excel-Formeln ohne eine UDF zu machen. Dafür gibt es im Netz mehr als reichlich Beispiele.

Gleichermaßen zugegeben, das Ganze lässt sich um einiges „eleganter“ programmieren. Auch Zahlen mit Nachkommastellen ließen sich erfassen.

Das ist aber nicht die Aufgabe dieses Code-Schnipsels. Er soll Ihnen helfen, Code zu analysieren. Aus dem Grunde ist hier auch kein einziger Kommentar enthalten. Gerade Einsteiger können hier den Code Schritt für Schritt durchgehen und schauen, was wann passiert. Aus diesem Grunde ist das Ganze auch extrem einfach „gestrickt“.

Der Aufruf der Funktion ist: =ZahlAusText(“Ihr_Text_mit_oder_ohne_Zahlen“)

▲ nach oben …

Der Code

Option Explicit

Function ZahlAusText(Zelle As Range) As Variant

Dim x As String

Dim i As Integer

Dim Pos1 As Integer, Pos2 As Integer

Dim Rc As Variant

ZahlAusText = „“

x = Zelle.Value

Do

For i = 1 To Len(x)

If IsNumeric(Mid(x, i, 1)) Then

Pos1 = i

Pos2 = i

Exit For

End If

Next i

If Pos1 = 0 Then

Rc = „“

Exit Do

End If

If Pos1 < Len(x) Then

For i = Pos1 + 1 To Len(x)

If Not IsNumeric(Mid(x, i, 1)) Then

Pos2 = i – 1

Exit For

End If

Next i

End If

Rc = CLng(Mid(x, Pos1, Pos2 – Pos1 + 1))

Exit Do

Loop

ZahlAusText = Rc

End Function

▲ nach oben …

Code4Import

Den obigen Code bekommen Sie hier als *.txt oder auch als *.bas zum downloaden. Beide Files sind als *.zip gepackt. Die *.bas wird den Sourcecode automatisch in das allgemeine Modul der Arbeitsmappe importieren.

▲ nach oben …

Dieser Beitrag wurde unter Code-Schnipsel, Mit VBA/Makro, Text, Verschiedenes abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.