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

VBA: Range.Replace-Methode in Excel 2007 und 2019

VBA: Range.Replace-Methode in Excel 2007 und 2019
02.08.2019 16:07:27
Peter
Hallo,
die Range.Replace-Methode verhält sich in VBA bei Excel 2007 anders als bei Excel 2019.
Beispiel:
A1 Format: Text, Wert: @abc:123@
A2 Format: Text, Wert: @abc:123@
A3 Format: Text, Wert: @abc:123@
Sub Test()
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
ws.Cells.Replace What:="@abc:", Replacement:="@", LookAt:=xlPart, SearchOrder:=xlByRows,  _
MatchCase:=False
End Sub
Das Ausführen des Makros bringt folgende Ergebnisse:
Excel 2007: @abc:123@ - NOK
Excel 2019: @123@ - OK
Nach Anpassung des Replacements mit einem vorangestellten Hochkomma ("'@"):
Excel 2007: @123@ - OK
Excel 2019: '@123@ - NOK
Das Makro soll abwärtskompatibel sein. Alle Zellen des Blattes sollen als "Text" formatiert bleiben.
Viele Grüße
Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Range.Replace-Methode in Excel 2007 und 2019
02.08.2019 16:08:50
Hajo_Zi
Hallo Peter,
benutze Substitute

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: VBA: Range.Replace-Methode in Excel 2007 und 2019
02.08.2019 16:23:21
Peter
Danke Hajo.
Bei Substitute muss ich aber jede Zelle einzeln bearbeiten, was ganz schön in die Laufzeit geht, bei mehreren 1000 Zeilen und mehrere hundert Spalten. Gibt es noch eine Alternative?
Gruß Peter
AW: VBA: Range.Replace-Methode in Excel 2007 und 2019
02.08.2019 16:41:36
Daniel
Hi
nö, musst du nicht.
das geht auch für alle Zellen gleichzeitig und ziemlich zügig.
schau dir mal meinen Lösungsvorschlag an.
Gruß Daniel
Anzeige
AW: VBA: Range.Replace-Methode in Excel 2007 und 2019
02.08.2019 16:25:14
Daniel
Hi
ich würde den Vorschlag von Hajo aufgreifen.
hier musst du den gewünschten Text per Formel erstellen und dann per Copy-Paste die Originalwerte überschreiben.
Sub test()
With ActiveSheet.UsedRange
With Columns(.Columns.Count + 1)
.FormulaR1C1 = "=SUBSTITUTE(RC1,""@abc:"",""@"")"
.Copy
.Offset(0, 1 - .Column).PasteSpecial xlPasteValues
.ClearContents
End With
End With
End Sub
Gruß Daniel
AW: VBA: Range.Replace-Methode in Excel 2007 und 2019
02.08.2019 17:02:05
Peter
Danke Daniel,
ab das mit der Formel funktioniert in diesem Fall nicht.
1. Die zu ändernden Zellen stehen in beliebigen Zeilen und Spalten
2. Die Zellen sind als Text formatiert und sollen so auch bleiben
Ich suche eine performante Lösung, um Werte im gesamten Blatt auszutauschen.
Kennt eigentlich jemand den Grund für das unterschiedliche Verhalten?
Gruß Peter
Anzeige
AW: VBA: Range.Replace-Methode in Excel 2007 und 2019
02.08.2019 17:56:26
Daniel
Hi
Bei mir (Excel 2016) ist das @ äquivalent dem =, dh. Excel versucht nach einer Neueingabe den Text als Formel zu berechnen.
Deine Beschreibung klingt so, als hätte sich das mit 2019 geändert.
Wenn du für beide Excelversionen eine funktionierende Lösung hast, dann programmiere doch beide und frage vorher die Versionsnummer ab (Application.Version) um zu entscheiden, welche auszuführen ist.
Gruß Daniel
Schau mal nach, ...
04.08.2019 13:03:03
Luc:-?
…Peter,
ob in Xl2019 noch die Lotus-1-2-3-Optionen vorhanden sind, denn diese Kompatibilität bewirkte bisher, dass Xl auch die dort übliche Fml-Darstellung automatisch auf seine geändert hat (zumindest, falls nicht benutzt). In Lotus fängt eine Fml nämlich nicht mit =, son­dern + oder - bzw im Falle einer mit einer Fkt beginnenden auch mit @ an. Fktsnamen wdn in Lotus nämlich generell mit voran­ge­stell­tem @ gekennzeichnet. Das am FmlAnfang ersetzt Xl dann durch =, die anderen wdn weggelassen und fml-anführendem +|- ein = voran­ge­stellt.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige