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

Forumthread: Leerzeilen aus String entfernen

Leerzeilen aus String entfernen
02.03.2015 09:53:36
Franz
Guten Morgen Fachleute,
wie kann ich aus einem String Leerzeilen löschen?
.Value = Replace(.Value, Chr(..), "")
Es kann im String mehrere ZEILENUMBRÜCHE geben, die sollen NICHT GELÖSCHT WERDEN. Diesen beiden...
.Value = Replace(.Value, chr(13), "")
.Value = Replace(.Value, vblf, "")
... sind also nicht drin.
Es sollen nur gänzlich leere Zeilen rausgenommen werden. Gibt es dafür eine Möglichkeit?
Danke schonmal und Grüße
Franz

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachtrag: Leerzeilen aus String entfernen
02.03.2015 09:55:52
Franz
sorry, ich hab das falsche reinkopiert. Es muss heißen:
Es kann im String mehrere ZEILENUMBRÜCHE geben, die sollen NICHT GELÖSCHT WERDEN. Diesen beiden...
.Value = Replace(.Value, chr(10), "")
.Value = Replace(.Value, vblf, "")
... sind also nicht drin.
Das hab ich ausprobiert: .Value = Replace(.Value, chr(13), "") - damit werden zwar die Zeilenumbrüche nicht rausgenommen, aber die leeren Zeilen auch nicht.
Sorry nochmal und Grüße
Franz

Anzeige
AW: Nachtrag: Leerzeilen aus String entfernen
02.03.2015 10:10:29
EtoPHG
Hallo Franz,
Vorne, in der Mitte, hinten ;-)
        'Leerzeilen zwischen Texten
.Value = Replace(.Value, vbLf & vbLf, vbLf)
'Leerzeile am Anfang
If Left(.Value, 1) = vbLf Then .Value = Right(.Value, Len(.Value) - 1)
'Leerzeilen am Schluss
If Right(.Value, 1) = vbLf Then .Value = Left(.Value, Len(.Value) - 1)
Gruess Hansueli

Anzeige
AW: Nachtrag: Leerzeilen aus String entfernen
02.03.2015 10:38:10
Franz
Hallo Hans,
danke, auch Dir! Für die Zusatzhinweise. Denn grad war mit einer Leerzeile am Anfang des Strings beschäftigt. Und hab auch grad schon mit Left und Replace versucht, den Code zu erstellen. Aber fertig bin ich noch nicht damit
Grüße
Franz

AW: Leerzeilen aus String entfernen
02.03.2015 09:57:50
Daniel
Hi
gänzlich leere Zeilen sollten dadurch erkennbar sein, dass zwei Zeilenumbrüche direkt aufeinander folgen. Dh du müsstest zwei Zeilenumbrüche durch einen ersetzen:
.Value = Replace(.Value, vbLf & vbLf, vbLf)
der vorgang muss ggf wiederholt werden, biss keine Doppel-Zeilenumbrüche mehr vorhanden sind.
Gruß Daniel

Anzeige
boah toll!
02.03.2015 10:01:43
Franz
Hallo Daniel,
herzlichen Dank, das ist ja super! Auf die Idee bin ich gar nicht gekommen.
Danke und Grüße
Franz

AW: noch ne Methode
02.03.2015 10:57:50
Daniel
Hi
es ginge auch noch folgendes:
1. Leerzeichen durch ein anderes Zeichen ersetzen
2. Zeilenumbruch durch durch Leerzeichen ersetzen
3. Workhsheetfunction.Trim anwenden (entfernt alle doppelten Leerzeichen, sowie Leerzeichen am Anfang und am Ende)
4. Leerzeichen durch Zeilenumbruch ersetzen
5. anderes Zeichen durch Leerzeichen ersetzen
Gruß Daniel

Anzeige
AW: noch ne Methode
02.03.2015 11:10:04
Franz
ja, Mensch, lauter hilfreiche Tipps! (Auf Trim bin ich bei meiner Suche auch schon gestoßen, setze es auch schon ein....)
Danke, Daniel und Grüße
Franz

AW: noch ne Methode
02.03.2015 11:15:03
Daniel
Worksheetfunction.Trim hätte den Vorteil, dass es die Umbrüche am Anfang und am Ende sowie mehrfach aufeinander folgende Umbrüche ohne zusatzaufwand mit bereinigt.
(achtung: unbedingt das Worksheetfunction.Trim verwenden. Das einfache Trim entfernt nur die Leerzeichen am Anfang und am Ende, aber nicht die mehrfachen zwischendrin)
Gruß Daniel

Anzeige
AW: ?
02.03.2015 11:40:20
daniel
Trim bearbeitet nur das Leerzeichen (ASCII-Code 32).
Aber du tauscht ja vorher die Zeilenumbrüche durch Leerzeichen aus.
Gruß Daniel

Anzeige
AW: ?
02.03.2015 11:42:36
Franz
Hallo Daniel,
ach so war's gedacht. Ja, ich hab das alleine betrachtet und nicht in der reihenfolge. Aber ja, so isses sehr sinnvoll - danke für den Tipp. Da kann ich mich jetzt bissl spielen und Verschiedenes ausprobieren.
Danke und Grüße
Franz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Leerzeilen aus String entfernen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel Leerzeilen aus einem String zu entfernen, kannst du die Replace-Funktion in VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei)" > Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub LeerzeilenEntfernen()
        Dim cell As Range
        For Each cell In Selection
            If Not IsEmpty(cell.Value) Then
                cell.Value = Replace(cell.Value, vbLf & vbLf, vbLf) ' Entfernt doppelte Zeilenumbrüche
                If Left(cell.Value, 1) = vbLf Then cell.Value = Right(cell.Value, Len(cell.Value) - 1) ' Leerzeile am Anfang
                If Right(cell.Value, 1) = vbLf Then cell.Value = Left(cell.Value, Len(cell.Value) - 1) ' Leerzeile am Ende
            End If
        Next cell
    End Sub
  4. Markiere die Zellen: Wähle die Zellen aus, in denen du die Leerzeilen entfernen möchtest.

  5. Führe das Makro aus: Drücke F5 oder gehe über Run > Run Sub/UserForm.

Mit diesem Code kannst du in Excel leere Zeilen zwischendrin löschen und so die Darstellung deiner Daten verbessern.


Häufige Fehler und Lösungen

  • Fehler: Das Makro entfernt keine Leerzeilen.

    • Lösung: Stelle sicher, dass du die richtige Auswahl getroffen hast. Das Makro funktioniert nur auf den markierten Zellen.
  • Fehler: Zeilenumbrüche werden fälschlicherweise entfernt.

    • Lösung: Überprüfe den Code und stelle sicher, dass du vbLf und nicht vbCr verwendest, um nur die Leerzeilen zu entfernen.

Alternative Methoden

Falls du keine VBA-Lösungen nutzen möchtest, gibt es auch alternative Methoden:

  1. Text in Spalten: Du kannst die Funktion Text in Spalten verwenden, um den Inhalt in separate Spalten zu teilen und dann die leeren Spalten zu löschen.
  2. Suchen und Ersetzen: Nutze die Funktion Suchen und Ersetzen. Suche nach zwei aufeinanderfolgenden Zeilenumbrüchen (Alt + 010 für Zeilenumbruch) und ersetze sie durch einen einzelnen Zeilenumbruch.

Praktische Beispiele

Nehmen wir an, du hast den folgenden String in Zelle A1:

Text1

Text2

Text3

Nach der Ausführung des Makros wird der Inhalt von A1 so aussehen:

Text1
Text2
Text3

Dieser Ansatz funktioniert auch in Kombination mit c# leerzeichen aus string entfernen, falls du den String vorher in Excel bearbeitest.


Tipps für Profis

  • Regelmäßige Anwendung: Wenn du oft mit leeren Zeilen in Strings arbeitest, speichere das Makro in deinem persönlichen Makroarbeitsbuch, um schnellen Zugriff zu haben.
  • WorksheetFunction.Trim verwenden: Um sicherzustellen, dass auch überflüssige Leerzeichen am Anfang und Ende entfernt werden, kannst du WorksheetFunction.Trim verwenden, nachdem du die Leerzeilen entfernt hast.

FAQ: Häufige Fragen

1. Kann ich dieses Makro auf eine ganze Spalte anwenden?
Ja, du kannst eine ganze Spalte auswählen, bevor du das Makro ausführst.

2. Was passiert mit Zeilenumbrüchen zwischen Texten?
Die Zeilenumbrüche zwischen den Texten bleiben erhalten, da das Makro nur die doppelten Zeilenumbrüche entfernt.

3. Funktioniert das auch in Excel Online?
Leider funktioniert dieses Makro nur in der Desktop-Version von Excel, nicht in Excel Online.

4. Wie kann ich Leerzeilen in HTML entfernen?
Das Entfernen von Leerzeilen in HTML erfordert eine andere Vorgehensweise, meist durch das Bearbeiten des HTML-Codes oder durch JavaScript.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige