Textzeichen aus Zellen entfernen (nur Ziffen auslesen)

Mit dem folgenden Beispiel-VBA Code werden aus beliebigen Zellen alle Text-Zeichen außer Zahlen entfernt. Dies kann nach einem Datenimport notwendig werden. Denn durch den Import können sich beispielsweise Leerzeichen oder andere undefinierbare Zeichen eingeschlichen haben.

Wichtig ist, das Dezimaltrennzeichen im VBA-Code  zu definieren, denn sonst wird es als unerwünschtes Zeichen erkannt und auch entfernt.

Voreingestellt ist das Komma (,) als Dezimaltrennzeichen.

Dieses Beispiel bereinigt die Zellen A1 bis A3. 

Sub Zahlen_auslesen()
dezimaltrennzeichen = "," 'Dezimaltrennzeichen festlegen
For i = 1 To 3 'Exemplarisch für Zeile 1 bis 3
    wert = Cells(i, 1).Value 'Exemplarisch für Spalte A - Also A1 bis A3
    zellwert = ""
    
    'In jeder Zelle werden alle Zeichen bearbeitet
    For k = 1 To Len(wert)
        z = Mid(wert, k, 1)
        If Not (Asc(z) > 47 And Asc(z) < 58) Then
            If z = dezimaltrennzeichen Then
                If Not Asc(Mid(wert, k + 1, 1)) > 47 And Asc(Mid(wert, k + 1, 1)) < 58 Then
                    z = ""
                End If
            Else
                z = ""
            End If
        End If
        zellwert = zellwert & z
    Next k
    
    Cells(i, 2).Value = CDbl(zellwert) 'Werte werden in B1 bis B3 geschrieben
Next i

End Sub

 

Drucken