Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Leerzeichen und Chr(160) löschen

Leerzeichen und Chr(160) löschen
13.07.2020 10:17:45
Matthias
Hallo zusammen
Ich habe eine Liste mit 50'000 Zeilen und etwa 30 Spalten ... und Excel liegt bei dieser Formel ab:
wsC.UsedRange.Select
For Each C In Selection
C.Value = Trim(LTrim(C.Value))
C.Replace Chr(160), "", xlPart
Next
Geht das irgendwie "schneller"? Oder ist das die einzige Möglichkeit so?
Wünsche allen einen tollen Tag!
LG Matthias
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen und Chr(160) löschen
13.07.2020 11:07:23
Daniel
HI
beispielsweise so, mit einem zweiten leeren Tabellenblatt (wsD).
Da fügt man dann eine entsprechende Formel ein, kopiert diese und schreibt sie wieder zurück.
das geht recht schnell, weil man hier alle Zellen gemeinsam in einem Schritt bearbeiten kann.
with wsD.Range(wsC.UsedRange.Address)
.FormulaR1C1 = "=TRIM(SUBSTITUTE('" & wsC.Name & "'!RC,CHAR(160),""""))"
.Copy
.wsC.Usedrange.PasteSpecial xlpastevalues
.ClearContents
End with
Voraussetzung ist, dass man mit Excel-Glätten anstelle des TRIM leben kann (Trim entfernt nur die Leerzeichen am Anfang und Ende, Glätten auch die mehrfach hintereinander vorkommenden Leerzeichen innerhalb)
die andere alterenative wäre:
dim arr
dim z as Long, s as Long
with wsC.UsedRange
arr = .value
for z = 1 to Ubound(arr, 1)
for s = 1 to ubound(arr, 2)
arr(z, s) = Trim(arr(z, s)
arr(z, s) = Replace(arr(z, s), chr(160), "")
next
next
.value = arr
end with

Gruß Daniel
Anzeige
AW: Leerzeichen und Chr(160) löschen
13.07.2020 12:48:15
Matthias
Sehr cool! Vielen herzlichen Dank Daniel! Die zweite Variante hat super geklappt!
und die erste?
13.07.2020 12:51:15
Daniel
hast du die auch mal ausprobiert?
Gruß Daniel
AW: und die erste?
13.07.2020 13:01:35
Matthias
Hey Daniel, nein die erste Variante habe ich nicht ausprobiert. Ich fand die zweite einfacher sympatischer, auch wenn ich da weniger verstanden habe, haha :-)
Anzeige
AW: und die erste?
13.07.2020 13:09:07
Daniel
Dann probier sie mal.
Mir sind Codes, die ich nicht verstehe , eher unsympathisch.
Gruß Daniel
AW: und die erste?
13.07.2020 13:09:09
Daniel
Dann probier sie mal.
Mir sind Codes, die ich nicht verstehe , eher unsympathisch.
Gruß Daniel
AW: und die erste?
13.07.2020 19:05:16
Matthias
Hi Daniel, ja da hast du recht. Aber als "Nicht-Programmierer" kann ich diesen Anspruch leider nicht haben, alles zu verstehen. Selbst wenn ich nach dem ubound suche, ist mir das nicht klar. Die andere Formel verstehe ich. Sie gibt allerdings einen Fehler aus:
Markierte Zeile: wsC.UsedRange.PasteSpecial xlPasteValues
Fehlerausgabe:
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht
Für mich passt aber die erste Variante wirklich! Herzlichen Dank nochmals!
Anzeige
AW: und die erste?
13.07.2020 20:29:53
Daniel
Dann prüf mal, ob du alles richtig geschrieben hast.
Auch als Nichtprogrammierer sollte man wissen, was man tut.
Die erste Methode ist gerade für Nichtprogrammierer mit vorhandenen Excelkenntnissen interessant, weil die damit trotzemen schnelle effektive Makros schreiben können.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Leerzeichen und Chr(160) in Excel entfernen


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei mit den Daten, in denen du das Chr(160) entfernen möchtest.

  2. Erstelle ein neues Arbeitsblatt (wsD), um temporäre Formeln zu verwenden.

  3. Gib folgende Formel in die Zelle A1 von wsD ein:

    =TRIM(SUBSTITUTE(wsC!A1, CHAR(160), ""))
  4. Ziehe die Formel bis zu den letzten Zellen der zu bearbeitenden Daten.

  5. Kopiere die gesamte Datenreihe aus wsD.

  6. Wechsel zurück zu wsC und füge die kopierten Werte ein, indem du mit der rechten Maustaste klickst und „Inhalte einfügen“ > „Werte“ wählst.

  7. Lösche das temporäre Blatt wsD, um die Übersichtlichkeit zu bewahren.

Diese Methode ist besonders effektiv, wenn deine Datenmenge groß ist und du die Leerzeichen sowie das unsichtbare Zeichen Chr(160) schnell und effizient entfernen möchtest.


Häufige Fehler und Lösungen

  • Laufzeitfehler 438:

    • Wenn du beim Ausführen des Codes die Fehlermeldung „Objekt unterstützt diese Eigenschaft oder Methode nicht“ erhältst, überprüfe, ob du die richtige Methode zum Einfügen der Werte verwendest. Stelle sicher, dass du .PasteSpecial xlPasteValues korrekt implementierst.
  • Formel gibt Fehler aus:

    • Wenn die Formel Fehler zurückgibt, überprüfe, ob du die korrekten Zellreferenzen verwendest und ob das Arbeitsblatt wsC tatsächlich existiert.

Alternative Methoden

Eine weitere Möglichkeit, Chr(160) zu entfernen, ist das folgende VBA-Skript:

Dim arr
Dim z As Long, s As Long
With wsC.UsedRange
    arr = .Value
    For z = 1 To UBound(arr, 1)
        For s = 1 To UBound(arr, 2)
            arr(z, s) = Trim(arr(z, s))
            arr(z, s) = Replace(arr(z, s), Chr(160), "")
        Next s
    Next z
    .Value = arr
End With

Mit diesem Skript bearbeitest du die gesamte Datenreihe gleichzeitig, was die Geschwindigkeit beim Entfernen von Leerzeichen und Chr(160) erhöht.


Praktische Beispiele

Angenommen, du hast die folgende Liste in wsC:

A
Test1
Test 2
Test  3 (enthält Chr(160))

Nach Anwendung der oben genannten Methoden sollte das Ergebnis wie folgt aussehen:

A
Test1
Test 2
Test 3

Das unsichtbare Zeichen Chr(160) ist entfernt und alle überflüssigen Leerzeichen sind bereinigt.


Tipps für Profis

  • Verwende regelmäßig die Funktion LTrim in Kombination mit Trim, um sicherzustellen, dass alle unnötigen Leerzeichen vor und nach dem Text entfernt werden.
  • Wenn du oft mit unsichtbaren Zeichen arbeitest, erstelle eine Funktion oder Makro, das diese Schritte automatisiert.
  • Teste deinen VBA-Code in einer Kopie deiner Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Was ist Chr(160)?
Chr(160) ist ein unsichtbares Zeichen, das oft in Daten vorkommt und in Excel als Leerzeichen angesehen wird. Es kann zu Problemen führen, wenn du mit Texten arbeitest.

2. Wie kann ich Chr(160) in einer Formel verwenden?
Du kannst die Funktion CHAR(160) verwenden, um dieses Zeichen in Formeln zu erkennen und zu ersetzen, z.B. mit SUBSTITUTE.

3. Gibt es eine Tastenkombination zum Entfernen von Leerzeichen?
Nein, es gibt keine direkte Tastenkombination, aber du kannst die Funktionen TRIM und SUBSTITUTE in Formeln nutzen, um Leerzeichen zu bereinigen.

4. Funktioniert dieser Prozess in allen Excel-Versionen?
Ja, die beschriebenen Methoden und VBA-Codes sind in den meisten modernen Excel-Versionen (2010 und neuer) anwendbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige