VBA Tipp: Ziffern aus Zeichenfolge extrahieren

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte alle Ziffern aus einer Zeichenfolge extrahieren.

Lösung 1

Public Function ZiffernAusString(ByVal Text As Variant) As Variant
 
 Dim strZiffern As String
 Dim Zeichen As String
 Dim i As Long
 
 If IsNull(Text) Then
   ZiffernAusString = Null
 Else
   For i = 1 To Len(Text)
     Zeichen = Mid(Text, i, 1)
     If IsNumeric(Zeichen) Then
       strZiffern = strZiffern & Zeichen
     End If
   Next i
   ZiffernAusString = strZiffern
 End If
 
End Function

Lösung 2

Public Function ZiffernAusString(ByVal Text As Variant) As Variant
 
 Dim strZiffern As String
 Dim Zeichen As String
 Dim i As Long
 
 If IsNull(Text) Then
   ZiffernAusString = Null
 Else
   For i = 1 To Len(Text)
     Zeichen = Mid(Text, i, 1)
     If Not InStr(1, "1234567890", Zeichen) = 0 Then
       strZiffern = strZiffern & Zeichen
     End If
   Next i
   ZiffernAusString = strZiffern
 End If
 
End Function

Aufruf

im Direktfenster

 Debug.Print ZiffernAusString("a20bc 20am16 aaa25rt") 'ergibt 20201625

in einer Aktualisierungsabfrage:

UPDATE SET MeinFeld = ZiffernAusString(MeinAnderesFeld)


Wiki hinweis.png Anmerkung: Man kann dazu auch die eingebaute Funktion Val nehmen, allerdings werden dann nur die Ziffern links von Nicht-Ziffern berücksichtigt.