Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Absatz mitten im Satz erkennen/entfernen

Absatz mitten im Satz erkennen/entfernen
04.12.2020 12:29:25
Seb
Hallo Forum,
ich suche ein Skript, das ungewollte Absätze mitten im zusammenhängenden Satz erkennt und anschließend entfernt. Der Text befindet sich in Zelle A2. Absätze bei einer Aufzählung, also vor "-" , und nach einer Überschrift, also doppelte Absätze, sollten idealerweise bestehen bleiben.
Ich habe es so versucht:
If InStr(Sheets(1).Range("A2"), "." & Chr(10)) > 0 Or InStr(Sheets(1).Range("A2"), Chr(10) & "-") > 0 Or InStr(Sheets(1).Range("A2"), Chr(10) & Chr(10)) > 0 Then
‘nothing
Else
Replace(Sheets(1).Range("A2"), Chr(10), Chr(160)) 'Absatz mit Leerzeichen ersetzen
End If
Klappt leider nicht. Hat jemand eine Idee?
Danke!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Absatz mitten im Satz erkennen/entfernen
04.12.2020 13:08:21
Daniel
Hi
Betrifft das nur eine Einzelzelle oder einen größeren Zellbereich?
Bei einer Einzelzelle müsste man Mitarbeitern der Textfunktion Replace arbeiten, bei einem größeren Zellbereich mit der Anweisung/Menüfunktion Replace.
Heißt zwar beides gleich, ist aber in der Anwendung unterschiedlich.
Das prinzipiell musst du so vorgehen, du brauchst 4 Schritte::
1. ersetze "Absatz Strich" durch "Dummy Strich"
2. ersetze "Absatz Absatz" durch "Dummy Dummy"
3. ersetze "Absatz" durch nichts
4. ersetze "Dummy" durch "Absatz"
Die Prüfung vorher kannst du weglassen.
Gruß Daniel
Anzeige
AW: Absatz mitten im Satz erkennen/entfernen
04.12.2020 15:58:25
Seb
Hallo Daniel,
danke für deine Nachricht. Ist es das, was du mit den 4 Schritten meinst?
Replace(Sheets(1), "." & Chr(10), "." & Chr(10))
Replace(Sheets(1), Chr(10) & "-", Chr(10) & "-")
Replace(Sheets(1), Chr(10) & Chr(10), Chr(10) & Chr(10))
Replace(Sheets(1), Chr(10), Chr(160))
Wäre Replace(Sheets(1), ... für den Fall richtig, dass es auf alle Zellen der Mappe angewendet werden soll?
AW: Absatz mitten im Satz erkennen/entfernen
04.12.2020 16:52:51
Daniel
Hi
naja, so richtig den Durchblick hast du noch nicht.
Welchen Sinn macht es, etwas durch das gleiche zu ersetzen?
du musst die Absätze, die nicht verschwinden sollen, zunächst durch ein anderes Zeichen austauschen, damit diese Absätze nicht entfernt werden und hinterher wieder die Absätze anstelle dieses Zeichen einfügen.
Außerdem solltest du dir mal die Excelfunktion ERSTETZEN mit dem Recorder aufzeichen und anschauen, die brauchst du hier. Du wenstest immer noch die Textfuntion REPLACE an.
im Prinzip eher so:
alle Umbrüche nach einem Punkt, vor einem Aufzähler und alle doppelten Umbrüche werden nicht ersetzt
With Sheets(1)
.Replace "." & chr(10), ".|", xlpart
.Replace Chr(10) & "-", "|-", xlpart
.Replace Chr(10) & chr(10), "||", xlpart
.Replace Chr(10), Chr(160), xlpart
.Replace "|", Chr(10), xlpart
End with
Gruß Daniel
Anzeige
AW: Absatz mitten im Satz erkennen/entfernen
06.12.2020 21:35:57
Seb
Hi Daniel,
du hast Recht; das Gleiche zu ersetzen wäre gleichbedeutend damit, dass alles so bleibt. Aber das sollte es für einige Absätze ja auch, außer für einen der Fälle. Das war meine Überlegung dahinter :) Es hat jedenfalls geklappt und ich danke dir!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige