Replace-Befehl | Herbers Excel-Forum


Betrifft: Replace-Befehl
von: Ansgar
Geschrieben am: 10.11.2009 12:20:53

Hallo zusammen,
folgendes Makro habe ich in einfacher Form aus der ursprünglichen Anwendung erstellt:

Sub tes()
    For nd = 1 To 4
        dateiname = Cells(3 + nd, 2)
        Range(Cells(3 + nd, 3), Cells(3 + nd, 6)).Replace _
            What:=";'*'!", _
            Replacement:=";'E:\Entwicklung\[" & datn & ".xls]Tabelle1'!", LookAt:=xlPart,  _
searchOrder:=xlByRows
    Next nd
    Range("A1").Select
End Sub

Aus der Zelle in der Spalte 2 wird der Dateiname (ohne Dateiergänzung) als Text ausgelesen:
z. B. "Haller".
Dieser Dateiname soll dann mit Hilfe des Replace-Befehls eingetragen werden:
bisheriger Zelleintrag z. B. "=Wenn(A1=1;"?";'E:\Entwicklung\[Meier.xls]Tabelle1'!$AC$4)"
geänderter Zelleintrag "=Wenn(A1=1;"?";'E:\Entwicklung\[Haller.xls]Tabelle1'!$AC$4)"
Es kommt zu keinem Fehler, aber ersetzt wird auch nichts. Warum?
Vielen Dank im voraus für Euere Hilfe
Ansgar

Betrifft: SearchIn:=xlFormulas 'und REPLACE-BUG
von: NoNet
Geschrieben am: 10.11.2009 12:38:24
Hallo Ansgar,
mit diesem Code suchst Du in den WERTEN der Zellen und nicht in den FORMELN/FUNKTIONEN/BEZÜGEN der Zellen !
Ergänze dazu das Argument SearchIn:=xlFormulas.
PS: M.E. gibt es in der REPLACE()-Funktion unter VBA aber auch einen BUG - google auch mal nach "BUG in VBA REPLACE"....
Gruß, NoNet

Betrifft: AW: SearchIn:=xlFormulas 'und REPLACE-BUG
von: Ansgar
Geschrieben am: 10.11.2009 12:45:47
Servus NoNet,
vielen Dank für Deinen Hinweis, habe ich auch daran gedacht, aber nicht, es so zu lösen. Werde das auch noch mal probieren, wenn meine eigene Problemlösung (siehe meine eigene Antwort) durchgelaufen ist .
Gruß
Ansgar

Betrifft: AW: Replace-Befehl
von: Ansgar
Geschrieben am: 10.11.2009 12:41:28
Servus Leute,
hätte ich nur länger im Forum-Archiv gesucht, denn das Problem habe ich mit dem Forumsbeitrag
https://www.herber.de/forum/archiv/876to880/t876583.htm
beantwortet bekommen, da auch bei mir das Semikolon das Problem war. Ersetzt durch ein Komma funktioniert es jetzt tadellos.
Trotzdem vielen Dank, eben an die Recherchemöglichkeit im Forum-Archiv und die dortigen Antworter.
Gruß
Ansgar

Betrifft: ersetze ';' durch ',' What:=",'*'!" oT.
von: Tino
Geschrieben am: 10.11.2009 12:42:52


Betrifft: AW: ersetze ';' durch ',' What:=",'*'!" oT.
von: Ansgar
Geschrieben am: 10.11.2009 12:51:55
Servus Tino,
auch Dir vielen Dank. Genau das war der Fehler. VBA denkt englisch, Ansgar denkt deutsch.
Schönen Tag
Ansgar

Betrifft: denke aber daran...
von: Tino
Geschrieben am: 10.11.2009 12:57:38
Hallo,
das die ersetzen Funktion einen Bug hat, wenn mal von Hand zuvor ein ersetzen auf allen Tabellen durchgeführt wurde kann man dies im VBA nicht zurückstellen.
War hier im Forum mal ein Thema, Herausgefunden hatte dies Erich G.
Persönlich würde ich auf anderen wege dies machen.
Gruß Tino

Beiträge aus den Excel-Beispielen zum Thema "Sverweis - Makro für Rahmen"