Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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

Suchen und Ersetzen mehrere Zeilen?

Suchen und Ersetzen mehrere Zeilen?
07.08.2021 10:58:41
Frank
Hallo Leute,
ich würde gerne mehrere Codezeilen, die auch noch unterschiedlich viele Zeilen beinhalten, gleichzeitig suchen und ersetzen im VBA-Editor
z.B.:
"calculate"
durch
Range("A1:R50000").Select
If TypeOf Selection Is Range Then Selection.Calculate
Wenn ich das probiere durch die Suchen und Ersetzen-Funktion kann ich immer nur eine Zeile ersetzen. Das ist hier nicht möglich, auch nicht nacheinander, da ja EINE Zeile ("calculate") durch ZWEI Zeilen ("Range... und 2. Zeile "If...) ersetzt werden sollen.
Hat da jemand eine Idee? Es muss doch möglich sein mit der Suchen und Ersetzen-Funktion mehr als eine Zeile gleichzeitig zu ersetzen oder muss man sich dafür ein Makro schreiben?
Vielen Dank!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und Ersetzen mehrere Zeilen?
07.08.2021 11:17:12
GerdL
Moin Frank,
Selection macht im Regelfall in Excel-VBA nur Sinn, falls der Benutzer die zu bearbeitenden Zellen auswählen soll.
Ansonsten ja, das ist nicht unmöglich, aber aufwändig.
Einfacher ist es, den Code in ein Tabellenblatt zu kopieren, dort zu ändern u. in das VBA-Modul zurückzukopieren.
Gruß Gerd
Danke Gerd, Onur und Daniel!
07.08.2021 12:37:45
Frank
Hallo,
also Gerd's Idee das in ein Tabellenblatt zu kopieren und da zu ändern hat den Vorteil, dass man die ganze Sache per Makro schreiben kann, lohnt sich bei vielen gleichen Operationen. Genau das brauche ich.
Onur's Idee das in Word zu exportieren ist sehr gut wenn Du einen großen Code hast. Da es bei mir ca. 30 Module sind, ist die Lösung für mich nicht geeignet, aber klasse Tip mit der .bas Datei!
Natürlich hat Onur und Daniel recht, das ist doppelt gemoppelt und ich kann das ganze auf von
Range("A1:R50000").Select
If TypeOf Selection Is Range Then Selection.Calculate
auf
Range("A1:R50000").Calculate
reduzieren in dem Fall, da ich die Markierungen ausschließlich per Makro kennzeichne und berechne.
Daniel's Idee mit Alt + 010 etc. teste ich nochmal, vielen Dank!!
Anzeige
AW: Suchen und Ersetzen mehrere Zeilen?
07.08.2021 11:21:08
onur
Exportiere den Code als .bas und öffne ihn mit Word - da kannst du auch Sonderzeichen wie Zeilenumbruch miteinfügen.
AW: Suchen und Ersetzen mehrere Zeilen?
07.08.2021 11:24:20
onur
Abgesehen davon, dass Select völlig überflüssig ist, wenn du doch
Range("A1:R50000").Select
geschrieben hast, ist Selection ja wohl auf jeden Fall ein Range - oder?
AW: Suchen und Ersetzen mehrere Zeilen?
07.08.2021 11:55:59
Daniel
Hi
Das Problem ist, dass du den Zeilenumbruch in die Eingabezeile des Ersetzten-Assistenten eingeben musst, ohne die Eingabe abzuschließen.
An anderer Stelle funktioniert das dadurch, dass man die ALT-Taste gedrückt hält und den ASCII-Code der Zeilenumbruchs eintippt, das kann sein "010" oder "013" oder manchmal auch die Kombination "013" + "010".
Vielleicht auch Shift oder Alt+Enter wie in den Zellen.
Da musst du mal durchprobieren.
Vielleicht gehts auch, wenn du den Text irgendwo anders hinschreibst und dann mit Strg+C/+V übernimmst.
Alternativ kannst du auch mehrere Programmzeilen in eine Editorzeile packen, wenn du den Doppelpunkt dazwischen setzt, also

Range("A1:R50000").Select:  If TypeOf Selection Is Range Then Selection.Calculate
Dann brauchst keinen Zeilenumbruch im Ersetzen.
Die Anmerkungen zu deinem konkreten Code wurden ja schon gemacht.
1. ist die IF-Abfrage überflüssig, denn wenn du selber direkt vorher im Code was selektiert, sollte doch klar sein, was du da selektiert hast.
Diese Abfrage braucht man nur, wenn man die Selektion verwenden will, die der Anwender gemacht hat, bevor er das Makro gestartet hat, weil man dann nicht sicher sein kann, was selektiert wurde.
2. ist das Select generell überflüssig, weil man in VBA die Ojekte nicht selektieren muss, bevor man sie bearbeitet, sondern man kann auch den Befehl direkt an das Objekt anhängen.
(dass der Recorder das anders aufzeichnet, ist unserer Arbeitsweise mit der Maus geschuldet).
Also reicht:

Range("A1:R50000").Calculate
Und damit hättest du auch dein Problem mit den mehreren Zeilen vom Tisch.
Gruß Daniel
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige