Per VBA Zeilenumbruch entfernen?

... komplette Frage anzeigen

6 Antworten

Manuell mit der Ersetzen-Funktion: Alt + 010

Wenn man dies als Makro aufzeichnet erhält man:

Cells.Replace What:="" & Chr(10) & "", Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Antwort bewerten Vielen Dank für Deine Bewertung

Muss es ein Makro sein?

Du kannst einfach links auf den Zeilenkopf rechtsklicken, Zellen formatieren, Ausrichtung, Haken bei Zeilenumbruch entfernen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Jasteni
21.10.2016, 16:34

Hallo. Das funktioniert leider so nicht. Dann verschwindet der Zeilenumbruch nicht. Und ja es muss Makro sein. Es sind ungefähr 2 mio. Zellen in ca 1000 Tabellen^^

0

Drücke Strg + H Dann öffnet sich ein Dialogfenster. Bei Suchen nach gibst du Alt + 010 ein. Dann wirst du zwar nichts sehen. Macht aber nichts. Bei Ersetzen durch kannst du z. B. ein Leerzeichen eingeben. Statt ein Leerzeichen kannst du jedes Zeichen oder Text eingeben

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
21.10.2016, 20:38

Habe das eben nachvollzogen: Alt(als Taste, nicht als Text!)010

ersetzen durch Beliebiges

es geht tatsächlich doch!

2

Komischerweise läuft das bei mir SO überhaupt nicht, weil bei Replace ein Argument fehlt und das auch sofort moniert wird!?

Aber auch mit dem zweiten Argument wird es so nicht akzeptiert, sondern will eine Zuweisung.
Interessanter Weise klappt es bei im Test mir SO:

Dim Text As String
Text = Range("A1").Replace(Chr(10), "")

Also einfach, indem ich es einer Variablen zuweise, OHNE die hinterher nochmal zu benutzen. In dem Moment, in dem Text das Replace zugewiesen wird, verschwindet der Umbruch in A1 automatisch, ohne dass ich Text zurückschreibe. Eigentlich müsste es bei Dir dann so klappen:


Dim Text as String
Text = Cells(t, 2).Replace(Chr(10), "") 

Klappt es?

P.S.:
Falls es immer noch nicht klapp, stelle sicher, dass der Umbruch wirklich Chr(10) ist. Ich meine, da gibt es noch einen anderen. Mit der Formel =CODE() bekommst Du den heraus.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
21.10.2016, 21:29

Bei mir ist da noch ein interessantes Phänomen aufgetreten. Ich wollte das in eine Zelle drunter einfügen mit diesen Befehlen: 

  • Text = ActiveCell.Replace(Chr(10), " ")
  • ActiveCell.Offset(1, 0).Value = Text


Ergebnis: WAHR !!! (in der Zelle, sonst nichts!)
Auch ohne Offset in derselben Zelle!
Ich schaffs nicht, den Inhalt von Test i'wo anders einzufügen! (vllt in ein Textfeld, hab ich nicht probiert)

0

nachdem du bestätigt hast, dass die Umbrüche von alt+enter kommen, sollte es doch mit dem Replace von chr(10) klappen

For i = 1 To 2
Cells(i, 1).Value = Replace(Cells(i, 1).Value, Chr(10), "")
Next

ist mindestens bei meinen Versuchen erfolgreich

Antwort bewerten Vielen Dank für Deine Bewertung

Zeilenumbrüche bestehen in Windows aus zwei Zeichen (chr10) + (chr13)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
21.10.2016, 17:32

In Excel ist das normalerweise nur Chr(10).

1

Was möchtest Du wissen?