VBA Suchen und ersetzen - Blatt/Arbeitsmappe
Hallo,
durch Aufzeichnen habe ich den folgenden Code in mein Makro aufgenommen:
Columns("E:E").Select
Selection.Replace What:="techn. OK", Replacement:="TOK", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Wenn ich es richtig ausgetestet habe, hat man keine Möglichkeit, in VBA-Code einzubauen, dass auf keinen Fall in der gesamten Arbeitsmappe, sondern ausschließlich in dem zuvor selektierten Bereich (hier: Spalte E) ersetzt wird. In meinem Fall stand im "Suchen und Ersetzen"-Popup (wahrscheinlich von einem früheren Ersetzen-Vorgang) die erste Einstellung "Suchen" auf 'Arbeitsmappe' als das Makro lief. Dadurch hat es mir auch den Inhalt sämtlicher Formeln ersetzt, was sehr viele Verknüpfungen vernichtete.
Wie kann ich sicherstellen, dass das Makro ausschließlich im markierten/selektierten Bereich ersetzt?
Danke für eure Hilfe, Gruß
Jojo
Antwort schreiben
Antwort 1 von gast123 vom 14.02.2020, 13:02 Options
hi all :-)
was spricht dagegen die betroffene erste zeile wegzulassen ?
gruss gast123
Antwort 2 von jojow vom 14.02.2020, 13:35 Options
Hallo Gast123,
Du meinst diese?
Columns("E:E").Select
Das verstehe ich nicht - es sollen ja gerade nur diese Felder für das Ersetzen herangezogen werden.
Gruß
Jojo
Antwort 3 von gast123 vom 15.02.2020, 09:54 Options
hi jojo :-)
zitat
Wie kann ich sicherstellen, dass das Makro ausschließlich im markierten/selektierten
indem die erste zeile weggelassen werden sollte
bzw bei festen bereichen workbook wie worksheet angaben man vornehmen koennte
oder praezisiere deine problemstellung
gruss gast123
Antwort 4 von gast123 vom 15.02.2020, 10:03 Options
hi jojo :-)
eine vorgehende selection von worbooks wie worksheets sollte entfernt werden bzw korrigiert werden
zu 99% sind selectionen ueberfluessig wie auch zeitaufwendiger im ablauf
bei einem aufgenommenen makro sind die selectionen durch direkte befehlszugriffe zu korrigieren,wie z.b. schon oben erwaehnt workbooks wie worksheets angaben,mit den moeglichkeiten einer index oder namens angabe
gruss gast123
Antwort 5 von jojo5 vom 26.02.2020, 19:46 Options
Hallo,
ich versuche es noch einmal, obwohl ich nicht weiß, was ich hier noch präzisieren soll ...
Wenn ich die erste Zeile "Columns("E:E").Select" weglassen würde, würde sich das Ersetzen sogar auf ALLE ZELLEN des aktiven Arbeitsblatts beziehen. Das macht es ja noch schlimmer. Ich möchte, dass das Ersetzen EXAKT NUR in der Spalte E des aktiven Arbeitsblatts stattfindet. Deshalb muss ich hier eine Selektion wählen. Wenn aber im "Suchen und Ersetzen"-Popup (z.B. von einem früheren Ersetzen-Vorgang) die erste Einstellung "Suchen" auf 'Arbeitsmappe' steht während das Makro läuft, so ersetzt der Befehl in JEDER Zelle der gesamten Arbeitsmappe - und das darf auf keinen Fall passieren. Bei dem aufgezeichneten Code (s.o.) gibt es keinerlei Möglichkeit, die Einstellung "Suchen" = 'Arbeitsmappe' zurück zu nehmen.
Die Frage lautet deshalb: Gibt es einen entsprechenden Befehl, der dies ermöglicht?
Gruß
Jojo