Re: Array aus anderen Datenblatt einlesen die 2.
24.08.2002 01:25:58
Charlie
Hallo Manuela,
ich möchte mich einleitend den Ratschlägen von Axel anschließen. Zwing Dich, die Variablen zu deklarieren, indem Du im VBA-Editor im Menü "Extras" - "Optionen" - Register "Editor" die Option "Variablendeklaration erforderlich" aktivierst. Dadurch setzt Excel automatisch in jedes Modul in die 1. Zeile "Option Explicit".Die Variablen solltest Du a) so benennen, dass Du auch später, wenn Du vielleicht nach Monaten den Code wieder bearbeiten musst, selbst leicht nachvollziehen kannst, welche Bedeutung die Variable wirklich hat (siehe auch Hinweis von Axel). Eine Variable mit irgendwas "..spalte" zu benennen und eigentlich Zeilen zu meinen, ist verwirrend. Bei der Deklaration der Variablen solltest Du auch die sog. Präfixes verwenden, die Dir - ohne dass Du auf die Deklaration schauen musst - im Code Aufschluss gibt, welcher Wert sich darin befindet bzw. befinden kann. So kannst Du falsche Wertzuweisungen leicht erkennen. Schau dazu einmal in die xlBasics von H.W. Herber (Downloadbereich).
Dass in Deinem Code nicht die Werte der geöffneten Datei in das Array eingelesen werden, liegt daran, dass die Referenzierung von Cells(...) falsch ist. So wie Du sie gesetzt hast, bezieht sie sich auf das aktive Blatt in der aktuellen Mappe. Ein Verweis auf ein nicht aktives Blatt oder eine andere Mappe braucht immer 1) ein genaues Ansprechen des "anderen" Blatts bzw. der "anderen" Datei und 2) den Verweis von Range oder Cells auf diese(s) Blatt/Datei durch Vorsetzen eines Punkts:
.Range(...) bzw. .Cells(...).
Wenn ich jetzt Deinen Code so interpretiere, dass Werte aus der zu öffnenden Datei in die aktuelle Datei (die den Code enthält) importiert werden sollen, dann gibt es mehrere Möglichkeiten: Deine viel zu umständliche Variante über ein Array oder Du machst es auf dem direkten Weg (siehe 2. Beispiel):
Ui, das war jetzt schön lang, aber ich hoffe, dass ich Dir die Fehler verständlich aufzeigen konnte.
Viel Erfolg,
Charlie