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

Forumthread: replace unsichtbarer Zeilenumbruch

replace unsichtbarer Zeilenumbruch
08.01.2019 15:48:35
Andy
Hallo zusammen,
ich habe ein Problem mit dem Zeilenumbruch beim auslesen von Daten in SAP nach Excel. Die Daten werden als Text in einem String übertragen. Jedoch ist in den String ein "unsichtbarer" Zeilenumbruch, den ich gerne entfernen möchte. (In Word wird mir dieses Zeichen als Zeilenumbruchsformatierung angezeigt.
Wie kann ich dieses Zeichen ersetzen?
Bisher habe ich suchen und ersetzen eingesetzt...
strAusgang = Replace(strEingang, "suche","ersetze mit")
Ich habe mal gelesen, dass man evtl. Sonderzeichen mit CHAR(..) ersetzen kann... weis aber nicht wie das funktionert?
Optinal wäre es auch noch gut zu wissen, wie ich den Bereich zum ersetzen ggfs. auf den Text zwischen zwei Strings begrenzen kann.
Kann mir da vielleicht jemand weiter helfen?
Gruß Andy
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: replace unsichtbarer Zeilenumbruch
08.01.2019 15:56:05
Daniel
HI
in VBA kannst du die Zeichen mit bekannten ASCII-Code über die Funktion CHR(x) angeben.
Unicodezeichen mit ChrW(x)
für die wichtigsten dieser Zeichen (Zeilenvorschub, Zeilenumbruch) gibt es auch eigene Sytemvariablen:
vbCr, vbLf und sogar vbCrLf
für die zweite Frage solltest du mal ein konkretes Beispiel machen, damit man besser versteht, was du meinst.
Gruß Daniel
Anzeige
AW: replace unsichtbarer Zeilenumbruch
08.01.2019 16:28:12
Andy
@Daniel: Danke für deine Hinweise!
Hier ein Beispiel zu dem Text der vorkommen könnte wäre:
Zeile1: Auftragskurztext
Zeile2: Bitte im Zuge des Auftrages folgende Zuarbeiten durchführen: 236897, 676868, 878978 und dies entsprechend quittieren lassen
In dem Text der Zeile 2 können Zeilenumbrüche sein, die ich gerne ersetzen möchte, wenn sie zwischen den Zeichenfolgen "im Zuge des Auftrages" und "quittieren lassen" sind.
Anzeige
AW: replace unsichtbarer Zeilenumbruch
08.01.2019 15:57:51
Sepp
Hallo Andy,
probiere

Replace(strEingang, vbLf, "")
'oder
Replace(strEingang, vbCrLf, "")
sonst musst du den Zeichencode des Sonderzeichens ermitteln und dann mit Chr(Code) versuchen.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: replace unsichtbarer Zeilenumbruch
08.01.2019 16:28:44
Andy
Danke - werde ich mal testen
=WECHSELN(A1;ZEICHEN(10);)
08.01.2019 15:59:22
WF
.
AW: =WECHSELN(A1;ZEICHEN(10);)
08.01.2019 16:29:30
Andy
Danke für den Befehl. Ich möchte das gerne in VBA umsetzen.
Anzeige
AW: replace unsichtbarer Zeilenumbruch
14.01.2019 16:46:02
Piet
Hallo Andy
Sonderzeichen löschen geht auch in VBA am einfachsten über Replace. Für den ganzen Text in Spalte/n ist das recht simpel!
Columns("xyz").Replace vbCrLF, ""
Columns("xyz").Replace vbCr, ""
Columns("xyz").Replace vbLf, ""
Columns("xyz").Replace Chr(160), " " - Sonderzeichen Space=160 gegen: - " " Leerzeichen tauschen!!
Kompliziert, aber nicht unmöglich wird es, wenn der Austausch erst an einer bestimmten Stelle im Text tattfinden soll. Dann must du den Text in Teilstrings zerschneiden, die Zeichen löschen, und den Text wieder zusammenfügen. Das geht aber nicht über Columns für die ganze Spalte, sondern nur über eine For Next Schleife für jede einzelne Zelle. İst machbar, aber viel mehr Arbeit als alles löschen.
Ich hoffe der Tipp hift dir weiter dein Problem zu lösen.
mfg Piet
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Unsichtbare Zeilenumbrüche in Excel entfernen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu starten.

  2. Neues Modul erstellen: Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (dein Dokument)" und wähle Einfügen > Modul.

  3. VBA-Code eingeben: Füge den folgenden Code in das Modul ein, um den unsichtbaren Zeilenumbruch zu entfernen:

    Sub ZeilenumbruchEntfernen()
       Dim rng As Range
       Set rng = Selection ' Hier wird der ausgewählte Bereich verwendet
    
       ' Unsichtbare Zeilenumbrüche entfernen
       rng.Replace What:=vbLf, Replacement:="", LookAt:=xlPart
       rng.Replace What:=vbCrLf, Replacement:="", LookAt:=xlPart
       rng.Replace What:=vbCr, Replacement:="", LookAt:=xlPart
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Wähle den Bereich aus, in dem Du die Zeilenumbrüche entfernen möchtest, und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: "Der Bereich ist leer"
    Lösung: Stelle sicher, dass Du einen Bereich ausgewählt hast, bevor Du das Makro ausführst.

  • Fehler: Zeilenumbrüche werden nicht entfernt
    Lösung: Überprüfe, ob die Zeilenumbrüche in Deinem Text tatsächlich mit vbLf, vbCr oder vbCrLf codiert sind. Du kannst auch den ASCII-Code des Zeilenumbruchs ermitteln und diesen verwenden.


Alternative Methoden

  1. Suchen und Ersetzen verwenden: Du kannst die Funktion Suchen und Ersetzen in Excel nutzen:

    • Drücke STRG + H, um das Fenster zu öffnen.
    • Gib in das Feld "Suchen nach" den ASCII-Zeichen für den Zeilenumbruch ein: ALT + 0010 (für vbLf).
    • Lasse das Feld "Ersetzen durch" leer und klicke auf Alle ersetzen.
  2. Formel verwenden: Um Zeilenumbrüche in einer Zelle zu entfernen, kannst Du die folgende Formel benutzen:

    =WECHSELN(A1;ZEICHEN(10);"")

Praktische Beispiele

  • Beispiel 1: Wenn Du in der Zelle A1 den Text "Hallo{ENTER}Welt" hast, kannst Du die Formel =WECHSELN(A1;ZEICHEN(10);"") verwenden, um "HalloWelt" zu erhalten.

  • Beispiel 2: Mit VBA kannst Du den Code zur Zeilenumbruchentfernung auf eine ganze Spalte anwenden:

    Columns("A").Replace What:=vbLf, Replacement:="", LookAt:=xlPart

Tipps für Profis

  • ASCII-Codes ermitteln: Um den ASCII-Code für einen bestimmten Zeilenumbruch zu ermitteln, kannst Du ein kleines VBA-Skript schreiben, das den Code für den ausgewählten Text ausgibt.

  • Testen der Änderungen: Bevor Du Änderungen an einem großen Datenbereich vornimmst, teste Deinen Code an einem kleinen Beispiel, um sicherzustellen, dass alles wie gewünscht funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich einen weichen Zeilenumbruch in Excel erkennen?
Ein weicher Zeilenumbruch wird oft durch das Zeichen vbLf dargestellt. Du kannst es mit der oben beschriebenen Methode entfernen.

2. Was ist der Unterschied zwischen vbCr und vbLf?
vbCr steht für Carriage Return (ASCII 13), während vbLf für Line Feed (ASCII 10) steht. Beide zusammen (vbCrLf) repräsentieren einen Zeilenumbruch in Windows.

3. Kann ich auch nur bestimmte Zeilenumbrüche ersetzen?
Ja, Du kannst die Bedingungen für das Ersetzen in Deinem VBA-Code anpassen, um nur bestimmte Zeilenumbrüche innerhalb eines bestimmten Textes zu ersetzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige