Replace funktioniert nur teilweise
11.06.2007 17:56:45
Dominik
Ich bin verwirrt.
In einem Excel-Sheet habe ich die folgenden fünf Zellen (in einer Zeile:
A1: {}Standorte
B1: {}=[GIS.xls]APK_PERSON!A2
C1: {}=HLOOKUP('C:\Temp\[GIS.xls]APK_PERSON'!A2;Werteliste!A$1:D$2;2;FALSE)
D1: {}5
E1: {}City
Mit dem Befehl:
Cells.Replace What:="{}", Replacement:=NIL, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
will ich jeweils die {} entfernen.
Das klappt nur für die A1 und B1.
Wenn ich den Replacement-String auf " " oder "hallo" ändere, dann macht er den Replace überall.
Wenn ich den Inhalt von B1 in C1 kopiere, klappt der Replace auch mit der richtigen Variante.
Also irgendwie kann er den Replace bei dieser Art Inhalt nicht machen.
Interessant: Wenn ich den Replace von Hand mache, dann klappt das wunderbar. Und wenn ich das von Hand als Makro aufzeichne, habe ich genau den obigen Befehl. Ausser dass der Replacementstring "" ist. Aber auch so gehts im Makro nicht. Das muss damit zusammen hangen, dass wenn die {} weg sind, die Formel aktiv ist.
Gute Frage, warum ich überhaupt die {} verwende. Damit die Zelle als Text angeschaut wird und ich die Formel aus einer anderen Datei ohne Probleme kopieren kann.
Die Formel kopiere ich aus einer C30 Zelle und landen tut sie in der C3. Wenn ich die Formel als solches kopiere, habe ich am Ende eine ungültige Formel. Kopiere geschieht mit dem Befehl:
Range(Cells(sourceHeadRow, sourceHeadColumn), Cells(sourceHeadRow, sourceHeadColumn).End(xlToRight)).Copy Destination:=Sheets(targetSheet).Cells(1, 1)
Wäre als alternative toll, wenn ich die Formel anders 1:1 kopieren könnte, ohne dass er die Zelleninhalte verändert.
Danke für irgendwelche Empfehlungen
Gruss
Dominik