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”)
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
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.