Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1480to1484
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

Zellarray aus anderer, offener Mappe kopieren

Zellarray aus anderer, offener Mappe kopieren
14.03.2016 13:45:55
Roger
Hallo alle zusammen,
für eine Auswertung möchte ich aus einer bereits offenen Mappe einen Zellbereich kopieren, bekomme aber den Laufzeitfehler '1004' [Anwendungs- oder objektorientierter Fehler] für folgende Zeile:
wkbQuellMappe.Sheets(strQuellSheet).Range(Cells(7, 1), Cells(22, 1)).Copy
bzw. in der Schleifenversion:
wkbQuellMappe.Sheets(strQuellSheet).Range(Cells(7, lngLaufSpalteLog), Cells(lngMaxZeileLog, lngLaufSpalteLog)).Copy
Allerdings funktioniert folgende Zeile tadellos:
wkbQuellMappe.Sheets(strQuellSheet).Range("A7:A22").Copy
die ja den selben Bereich anspricht.
Kann mir da jemand mal schnell helfen, auf welchem Teilstück des Schlauches ich stehe ?
Vielen Dank

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

Betreff
Datum
Anwender
Anzeige
AW: Zellarray aus anderer, offener Mappe kopieren
14.03.2016 13:51:42
ChrisL
Hi Roger
Bei Cells fehlen die Angaben zum Sheet.
With wkbQuellMappe.Sheets(strQuellSheet)
.Range(.Cells(7, lngLaufSpalteLog), .Cells(lngMaxZeileLog, lngLaufSpalteLog)).Copy
End With
cu
Chris

AW: Zellarray aus anderer, offener Mappe kopieren
14.03.2016 14:02:36
Roger
Hallo alle zusammen,
ich komm ja fast nicht mehr mit dem ausprobieren hinterher, aber es funktionieren alle Lösungsmöglichkeiten. Logisch, dass da die Referenzierung fehlte.
Hab mich wegen der Übersichtlichkeit für den With-Rahmen entschieden.
Vielen Dank allen zusammen, mal wieder viel dazugelernt !
P.S.: Muss mich wohl runterstufen, von "Gut" auf "Anfänger" ;)
- dachte eigentlich, ich wär zumindest nicht schlecht, da ich in der Firma bisher alle VBA-Probleme gelöst habe ;)

Anzeige
AW: Zellarray aus anderer, offener Mappe kopieren
14.03.2016 13:54:00
selli
hallo roger,
die "cells" in deiner mappe benötigen ein übergeordnetes objekt.
also:
wkbQuellMappe.Sheets(strQuellSheet).Range(Sheets(strQuellSheet).Cells(7, 1),Sheets(strQuellSheet).Cells(22, 1)).Copy
gruß
selli

rudi hat hier natürlich recht, ich hatte....
14.03.2016 13:55:41
selli
...ja auch noch die betreffende mappe vergessen.
gruß
selli

Referenzierung mangelhaft
14.03.2016 13:54:07
Rudi
Hallo,
wkbQuellMappe.Sheets(strQuellSheet).Range(wkbQuellMappe.Sheets(strQuellSheet).Cells(7, 1), wkbQuellMappe.Sheets(strQuellSheet).Cells(22, 1)).Copy
Oder per With-Rahmen.
Gruß
Rudi

Standardfehler
14.03.2016 13:56:44
Daniel
Hi
du machst mal wieder den Standardfehler, den wohl jeder mal macht, der aber bei VBA-Gut eigentlich nicht mehr vorkommen sollte.
Es gilt:
Zellbezüge (Range, Cells, Columns, Rows) ohne Tabellenblattangabe davor beziehen sich immmer auf das aktive Tabellenblatt (oder wenn der Code in einem Tabellenblattmodul steht, auf das Modulblatt).
Das gilt auch, wenn die Zellbezüge innerhalb von Funktionen stehen wie bei Range(Cells(), Cells())
dh hier muss die Worksbook- und Worksheet-Angabe auch vor den beiden Cells stehen und nicht nur vor der Range. Ansonsten hast du das Problem, dass die Cells auf einem anderen Blatt liegen als die Range, die sie definieren sollen und das führt dann zum Fehler.
Weil der Code so schnell sehr unübersichtlich wird, sollte man auf Range(Cells(), Cells()) verzichten wenn auf ein anderes Workbook zugegriffen wird.
Übersichlicheren Code ergibt die WITH-Klammer:
WITH wkbQuellMappe.Sheets(strQuellSheet)
.Range(.Cells(7, 1), .Cells(22, 1)).Copy
end With

oder wenn WITH schon anderweitig verwendet wird, kann man den Zellbereich mit Resize angeben:
wkbQuellMappe.Sheets(strQuellSheet).Cells(7, 1).Resize(16, 1).Copy 
bzw in der Schleifenversion
wkbQuellMappe.Sheets(strQuellSheet).Cells(7, lngLaufSpalteLog).Resize(lngMaxZeileLog - 7 + 1, 1).copy

Gruß Daniel

Anzeige
AW: Standardfehler
14.03.2016 14:07:55
Roger
Hallo alle zusammen,
ich komm ja fast nicht mehr mit dem ausprobieren hinterher, aber es funktionieren alle Lösungsmöglichkeiten. Logisch, dass da die Referenzierung fehlte.
Hab mich wegen der Übersichtlichkeit für den With-Rahmen entschieden.
Vielen Dank allen zusammen, mal wieder viel dazugelernt !
P.S.: Muss mich wohl runterstufen, von "Gut" auf "Anfänger" ;)
- dachte eigentlich, ich wär zumindest nicht schlecht, da ich in der Firma bisher alle VBA-Probleme gelöst habe ;)

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige