Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
876to880
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
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Replace funktioniert nur teilweise

Replace funktioniert nur teilweise
11.06.2007 17:56:45
Dominik
Hallo zusammen
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Warum den ausgerechnet Matrixformel-...
12.06.2007 03:25:00
Luc:-?
...und Matrixkonstantensymbole, Dominik?
Das war sicher keine gute Idee! Mit einem # für das führende = habe ich bisher keine Probleme gehabt, wenn ich mal so wie du vorgehen musste.
Gruß Luc :-?

AW: Warum den ausgerechnet Matrixformel-...
12.06.2007 08:16:54
ingUR
Hallo, Dominik,
das Ersetzen in Zellen mit Standardformat funktioniert wohl deswegen nicht, da B1 und C1 bei Fortfall der Zeichen {} als Zellenformel interpretiert wird.
zu B1:
damit zu B1 das Ersetzen zu keinem Fehler führt, muß im EXCEL-Standardordner (Einstellung via Extras::Optionen::[Allgemein]) die Arbeitsmappe GIS.xls und in ihr die Tabelle mit dem Namen APK_PERSON existieren. Ansonsten ist ein Leerzeichen erforderlich vor dem Gelichheitszeichen erfolrderlich, damit der bearbeitete Zelleninhalt als Text erkannt wird.
zu C1:
auch hier wird nach dem Replace die Datei GIS.xls mit der entsprechend benannenten Tabelle zur Aufschluüsselung der entstandenen Zellenformel erwartetrt, allerdings diesmal im Verzeichenis C:\temp. Zusätzlich müßte deine ECXEL-Anwendung eine engliche Version sein, das HLOOKUP bei deutschsprachigen Zellenbefehkssatz WVERWEIS ist.
Da zudem der Syntax lautet WVERWEIS(Suchkritierium; Matrix; Zellenindex; Bereich_Verweis), und ich vermute dass diese Parameterreihenfolge auch in der englichsprachigen Version gilt, kann dieser Asudruck wohl nicht als Zellenformel ausgewertet werden, wenn man das geschweifte Klammmerpaar ersatzlos entfernt.
Kannst Du nicht per VBA-Makro die Zellenformeln von Mappe1:TabelleA nach Mappe2:TabelleB kopieren, wenn ein Formelinhalt in der Quelldatei entdeckt wird, ansonsten eben den Wert?
Gruß,
Uwe

Anzeige
AW: Warum den ausgerechnet Matrixformel-...
18.06.2007 09:19:22
Dominik
Danke für die Antworten
Luc, kannst Du mir ein Beispiel-Code senden, wie Du das gemacht hast?
Ich habe rausgefunden, dass der Replace wunderbar funktioniert, wenn ich in einer Zelle nur einen Verweis habe (=[Datei]Blatt!Zelle). Sobald eine "richtige" Formel zum Einsatz gelangt, funktioniert der Replace nicht mehr.
Interessant, wenn ich Search and Replace von Hand ausführe, mit den gleichen Optionen, wird alles so gemacht, wie ich mir das wünsche. Interessant auch, wenn ich die "{}" von Hand lösche, ist die Formel fehlerfrei!
Wie entferne ich die "{}" korrekt in einer Formel mit Search and Replace?
Die Matrix verwende ich, weil in der Quelldatei zum Beispiel FRA steht und ich aus dem Frankfurt machen will. Die Zuordnung, welche Abkürzung zu welcher Stadt gehört ist im Blatt Werteliste und soll auch dort bleiben und nicht fix ins Makro kommen.
Nach mir ist der Befehl HLOOKUP nicht das Problem, sonder gilt für sämtliche Befehle.
Gibts weitere Lösungsvarianten?
Gruss
Dominik
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige