Wie kann ich alle Buchstaben löschen und nur die Zahlen stehen lassen.
Beispiel
sdfjl 15
sdfssss 2
Ergebnis
15
2
Die Datei ist etwas umfangreicher!
Gruß Michael
A | B | |
1 | adventure (2) | 2 |
2 | kost (122) | 122 |
3 | x | 0 |
4 | 0 |
Formeln der Tabelle | ||||
| ||||
Enthält Matrixformel: Umrandende { } nicht miteingeben, sondern Formel mit STRG+SHIFT+RETURN abschließen! | ||||
Matrix verstehen |
Public Sub NurZiffern()
Dim lZeile As Long
Dim sZeichen As String
Dim iPosit As Integer
With Worksheets("Tabelle1")
For lZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
For iPosit = 1 To Len(Range("A" & lZeile).Value)
sZeichen = Mid(Range("A" & lZeile), iPosit, 1)
If IsNumeric(sZeichen) Then
Range("B" & lZeile).Value = Range("B" & lZeile).Value & sZeichen
End If
Next iPosit
Next lZeile
End With
End Sub
Gruß Peter
Sub TEST()
Dim Bereich As Range, Zelle1 As String
Dim Wert As Long, A As Long
On Error Resume Next
If Cells.SpecialCells(xlCellTypeConstants) Then
Zelle1 = Cells.SpecialCells(xlCellTypeConstants).Address
End If
If Cells.SpecialCells(xlCellTypeFormulas) Then
If Zelle1 > "" Then
Zelle1 = Zelle1 & "," & Cells.SpecialCells(xlCellTypeFormulas).Address
Else
Zelle1 = Cells.SpecialCells(xlCellTypeFormulas).Address
End If
End If
On Error GoTo 0
For Each Bereich In Range(Zelle1)
For A = 1 To Len(Bereich)
If IsNumeric(Mid(Bereich, A, 1)) Then
Wert = Wert & Mid(Bereich, A, 1)
End If
Next A
Bereich = Wert
Wert = 0
Next Bereich
End Sub
Gruss
Tino
Sub TEST()
Dim Bereich As Range, Zelle1 As String
Dim Wert As Long, A As Long
On Error Resume Next
If Cells.SpecialCells(xlCellTypeConstants) Then
Zelle1 = Cells.SpecialCells(xlCellTypeConstants).Address
End If
If Cells.SpecialCells(xlCellTypeFormulas) Then
If Zelle1 > "" Then
Zelle1 = Zelle1 & "," & Cells.SpecialCells(xlCellTypeFormulas).Address
Else
Zelle1 = Cells.SpecialCells(xlCellTypeFormulas).Address
End If
End If
On Error GoTo 0
For Each Bereich In Range(Zelle1)
If Bereich > "" Then
For A = 1 To Len(Bereich)
If IsNumeric(Mid(Bereich, A, 1)) Then
Wert = CDbl(Mid(Bereich, A, 1))
End If
Next A
Bereich = Wert
End If
Wert = 0
Next Bereich
End Sub
Gruss
Tino
Public Sub NurZiffern()
Dim lZeile As Long
Dim sZeichen As String
Dim iPosit As Integer
Dim sErgebnis As String
With Worksheets("Tabelle1") ' Tabellenblattnamen ggf. anpassen !!!
For lZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
sErgebnis = ""
' die Werte werden in Spalte A ab Zeile 1 angenommen !!!
For iPosit = 1 To Len(Range("A" & lZeile).Value) ' Werte aus Spalte A
sZeichen = Mid(Range("A" & lZeile), iPosit, 1)
If IsNumeric(sZeichen) Then
sErgebnis = sErgebnis & sZeichen
End If
Next iPosit
Range("A" & lZeile).Value = sErgebnis * 1 ' Ergebnis in Spalte A
Next lZeile
End With
End Sub
Gruß Peter
Public Sub NurZiffern()
Dim lZeile As Long
Dim sZeichen As String
Dim iPosit As Integer
Dim sErgebnis As String
With Worksheets("Tabelle12") ' Tabellenblattnamen ggf. anpassen !!!
For lZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
sErgebnis = "" ' die Ausgabe-Variable leeren/löschen
' die Werte werden in Spalte A ab Zeile 1 angenommen !!!
For iPosit = 1 To Len(.Range("A" & lZeile).Value) ' Werte aus Spalte A
sZeichen = Mid(.Range("A" & lZeile), iPosit, 1)
If IsNumeric(sZeichen) Then
sErgebnis = sErgebnis & sZeichen
End If
Next iPosit
If sErgebnis "" Then ' wurde eine Zahl gefunden ?
.Range("A" & lZeile).Value = sErgebnis * 1 ' Ergebnis nach Spalte A
End If
Next lZeile
End With
End Sub
Gruß Peter
Sub alles_ausser_Ziffern_löschen()
Dim rngBereich As Range
Dim i As Integer
Set rngBereich = Selection
For i = 3 To 255
Select Case i
Case 48 To 57 '--- Zahlen werden nicht gelöscht
Case 42, 63 '--- Platzhalter ? * müssen gesondert betrachtet werden
rngBereich.Replace "~" & Chr(i), ""
Case Else '--- alles andere: Hasta la Vista, Zeichen
rngBereich.Replace Chr(i), ""
End Select
Next
End Sub
Gruß, Daniel
Sub Buchstaben_löschen()
Dim rngBereich As Range
Dim i As Integer
On Error Resume Next
Set rngBereich = Selection.SpecialCells(xlCellTypeConstants, 2)
On Error GoTo 0
If rngBereich Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For i = 3 To 255
Select Case i
Case 48 To 57
Case 42, 63
rngBereich.Replace "~" & Chr(i), "", xlPart
Case Else
rngBereich.Replace Chr(i), "", xlPart
End Select
Next
Application.ScreenUpdating = True
End Sub
Gruß, Daniel
Sub alles_ausser_Zeichen_löschen_()
Dim rngBereich As Range
Dim i As Integer
Dim j As Integer
Columns("A:A").Select
Set rngBereich = Selection
For i = 40 To 41
rngBereich.Replace Chr(i), ""
Next
For j = 48 To 57
rngBereich.Replace Chr(j), ""
Next
End Sub
Sub alles_ausser_Zeichen_löschen2_()
Dim i As Integer
With Columns("A:A")
.Replace Chr(40), "", xlPart
.Replace Chr(41), "", xlPart
For i = 48 To 57
.Replace Chr(i), "", xlPart
Next
End With
End Sub
xlPart ist wesentlich, wenn zufällig vorher nach einem ganzen Wort gesucht wurde.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Um in Excel Buchstaben zu löschen und nur die Zahlen stehen zu lassen, kannst du verschiedene Methoden anwenden. Hier ist eine einfache Vorgehensweise mit VBA:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Füge den folgenden Code in das Modul ein:
Public Sub NurZiffern()
Dim lZeile As Long
Dim sZeichen As String
Dim iPosit As Integer
Dim sErgebnis As String
With Worksheets("Tabelle1") ' Tabellenblattnamen ggf. anpassen
For lZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
sErgebnis = ""
For iPosit = 1 To Len(Range("A" & lZeile).Value)
sZeichen = Mid(Range("A" & lZeile), iPosit, 1)
If IsNumeric(sZeichen) Then
sErgebnis = sErgebnis & sZeichen
End If
Next iPosit
Range("A" & lZeile).Value = sErgebnis * 1 ' Ergebnis in Spalte A
Next lZeile
End With
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Drücke ALT + F8
, wähle NurZiffern
und klicke auf Ausführen
.
Diese Methode löscht alle Buchstaben aus der Zelle und behält nur die Zahlen.
Fehler: Laufzeitfehler 13: Dieser Fehler tritt auf, wenn in einer Zelle keine Zahlen vorhanden sind. Um dies zu umgehen, stelle sicher, dass dein Code eine Überprüfung auf leere Zellen oder Zellen ohne Ziffern enthält.
If sErgebnis <> "" Then
Range("A" & lZeile).Value = sErgebnis * 1
End If
Buchstaben löschen sich beim Schreiben: Wenn du beim Schreiben von Zahlen in eine Zelle siehst, dass Buchstaben verschwinden, prüfe, ob eventuell eine bedingte Formatierung oder ein Makro aktiv ist, das dies verursacht.
Formelbasierte Methode: Verwende die folgende Formel, um Buchstaben aus einer Zelle zu entfernen und nur die Zahlen zu behalten:
=TEXTJOIN("", TRUE, IF(ISNUMBER(MID(A1, ROW($1:$100), 1) * 1, MID(A1, ROW($1:$100), 1), ""))
Diese Formel benötigt die Eingabe als Matrixformel (STRG + SHIFT + ENTER).
Einsatz von Ersetzen-Funktion: Du kannst auch die Ersetzen
-Funktion in Excel verwenden, um gezielt Buchstaben oder Sonderzeichen zu löschen.
sdfjl 15
. Nach Ausführung des Makros wird in Zelle A1 nur 15
stehen bleiben.adventure (2)
in Zelle A2 wird das Ergebnis 2
in der Zelle verbleiben.Application.ScreenUpdating = False
, um die Leistung zu verbessern, wenn du mit großen Datenmengen arbeitest.1. Wie kann ich alle Buchstaben aus einer Excel-Zelle entfernen? Du kannst das oben angegebene VBA-Skript verwenden oder die Formel, um Buchstaben zu löschen und die Zahlen zu behalten.
2. Was mache ich, wenn der Makro nicht funktioniert? Überprüfe, ob der Tabellenblattname im Code korrekt ist und ob alle benötigten Berechtigungen aktiviert sind.
3. Gibt es eine Möglichkeit, nur bestimmte Buchstaben zu entfernen?
Ja, du kannst die Replace
-Methode in VBA verwenden, um gezielt Buchstaben zu löschen, die du nicht benötigst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen