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

Forumthread: Replace von "carriage return" in string?

Replace von "carriage return" in string?
26.02.2005 20:48:34
"carriage
Hallo Experts,
wie kann ich denn in einem String (ursprünglich html-text, Einlesen siehe code unten) die Zeilenumbrüche rausschmeißen/ersetzen?
Funktion replace mit "&H0D" funktioniert nicht.
Hans
Set myIE_App = CreateObject("InternetExplorer.Application")
myIE_App.Navigate sURL
Do
Sleep 10
Loop Until myIE_App.Busy = False
strText = myIE_App.Document.documentElement.outerTEXT
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Replace von "carriage return" in string?
"carriage
Hi talljohn,
krieg doch erstmal mit nem Hexeditor raus oder mit Code wie dem:

Sub tt()
'..hier strText einlesen
For n = 1 To 400 ' man muss ja nicht alles checken
z = Asc(Mid(strText, n, 1))
If z < 32 Then MsgBox "Zeichen: " & n & "ist das Steuerzeichen: " & z
Next n
End Sub

heraus, welche Steuerzeichen überhaupt drinstecken und ob sie als 0D bzw 0A einzeln oder zusammen als 0D0A stehen.
Dann poste hier mal den Teil des Codes der ersetzen soll.
Gruß
Reinhard
Anzeige
clean oder substitute ?
bernd
Hallo John
Zeilenumbrüche rausschmeissen könnte auch so gehen:
Public

Sub weg()
Dim str As String
str = dein string
MsgBox str
str = WorksheetFunction.Clean(str)
MsgBox str
End Sub

erstzen in diesem fall durch "":
Public

Sub ersetz_durch_nichts()
Dim str As String
str = dein string
MsgBox str
str = WorksheetFunction.Substitute(WorksheetFunction.Substitute(str, Chr(10), ""), Chr(13), "")
MsgBox str
End Sub

bernd
Anzeige
AW: clean oder substitute ?
Ulf
Clean ist der richtige Tipp!
Ulf
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Carriage Returns in Excel-Strings Entfernen und Ersetzen


Schritt-für-Schritt-Anleitung

Um Carriage Returns (CR) in einem Excel-String zu entfernen oder zu ersetzen, kannst Du die folgenden Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen und dann auf Modul.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub RemoveCarriageReturns()
        Dim str As String
        str = "Hier steht dein Text mit CR" & vbCrLf & "und weiteren Zeilen."
    
        ' Entfernen von Carriage Returns
        str = Replace(str, vbCr, "")
        str = Replace(str, vbLf, "")
    
        MsgBox str ' Zeigt das Ergebnis an
    End Sub
  4. Führe das Skript aus: Klicke auf Ausführen oder drücke F5.

  5. Überprüfe das Ergebnis: Ein Meldungsfenster zeigt den bereinigten String ohne Carriage Returns.


Häufige Fehler und Lösungen

  • Fehler: Der Code entfernt nicht alle Zeilenumbrüche.

    • Lösung: Stelle sicher, dass Du sowohl vbCr (Carriage Return) als auch vbLf (Line Feed) ersetzt. Verwende den Code Replace(str, vbCr, "") und Replace(str, vbLf, "").
  • Fehler: Der Code funktioniert nicht in Excel.

    • Lösung: Vergewissere Dich, dass Du im VBA-Editor bist und die Makros aktiviert sind.

Alternative Methoden

Neben dem VBA-Ansatz kannst Du auch die Excel-Funktionen verwenden:

  1. CLEAN-Funktion: Diese Funktion entfernt nicht druckbare Zeichen, einschließlich der Carriage Returns.

    =CLEAN(A1)
  2. SUBSTITUTE-Funktion: Um CRs durch nichts zu ersetzen, kannst Du die folgende Formel verwenden:

    =SUBSTITUTE(SUBSTITUTE(A1, CHAR(10), ""), CHAR(13), "")

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du Carriage Returns in Strings ersetzen kannst:

  1. Ersetzen in einem String:

    Sub ReplaceCarriageReturns()
       Dim str As String
       str = "Text mit" & vbCrLf & "Carriage Return"
       str = Replace(str, vbCrLf, " ") ' Ersetzt CRLF durch ein Leerzeichen
       MsgBox str
    End Sub
  2. Verwenden von Excel-Funktionen: Wenn Du einen Text in Zelle A1 hast:

    =SUBSTITUTE(A1, CHAR(10), "") ' Entfernt nur Line Feeds

Tipps für Profis

  • Hex-Editor: Verwende einen Hex-Editor, um herauszufinden, welche Steuerzeichen in Deinem String enthalten sind. So kannst Du gezielt die richtigen Zeichen ersetzen.
  • Kombination von Funktionen: Du kannst CLEAN und SUBSTITUTE kombinieren, um alle nicht druckbaren Zeichen effektiv zu entfernen.
  • Regelmäßige Ausdrücke: Wenn Du mit komplexen Mustern arbeitest, erwäge die Verwendung von regulären Ausdrücken in VBA.

FAQ: Häufige Fragen

1. Wie kann ich auch andere nicht druckbare Zeichen entfernen? Du kannst die CLEAN-Funktion verwenden, die alle nicht druckbaren Zeichen entfernt.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, die beschriebenen VBA-Methoden und Excel-Funktionen funktionieren in den meisten modernen Excel-Versionen, einschließlich Excel 2010 und später.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige