Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler 1004

Laufzeitfehler 1004
24.01.2015 01:00:01
daniel
Servus Miteinander,
in meinem Makro will ich eingelesene Textdateien die jeweils in einem eigenem Tabellenblatt eingelesen wurden prüfen ob sie eine bestimmte Zelle die gleichen Werte aufweist falls ja sollen die Werte von der übereinstimmenden Tabelle in die andere hinein kopiert werden.
Problem ist nun nur das sobald ich kopieren bzw. den Bereich zum kopieren auswählen will mir die Fehlermeldung:
Laufzeitfehler 1004 Anwendungs - oder objektdefinierter Fehler:
erscheint.
Die Auswahl geschiet über Zuweisung des Bereichs in eine Range Variable.
Wenn ich den Bereich über Set varCopyDatei = Worksheets("Datei_3").Range("A22:B471")
funktiniert alles.
Sobald ich aber den Bereich variabel zuweisen will kommt die Fehlermeldung
Set varCopyDatei = Worksheets("Datei_" & I).Range(Cells(ranStart.Row, 1), Cells(lngEndZcopy, 2))
Hier mal die ganze Prozedur:
https://www.herber.de/bbs/user/95218.txt

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004
24.01.2015 04:14:20
fcs
Hallo Daniel,
wenn "Datei_" & I nicht das aktive Tabellenblatt ist, dann sind das Range und die beiden Cells-Objekte auf verschiedenen Tabellenblättern, was den Fehler auslöst. Wenn ein Makro auf verschiedene Tabellenblätter zugreift, dann musst du darauf achten, dass der Verweis auf Range, Cells, Rows, Columns, Shapes und andere Objekte eines Tabellenblatts immer vollständig angegeben wird, wenn sich die Objekte nicht auf dem aktiven Tabellenblatt befinden. Ähnliches gilt, wenn man mit mehreren Arbeitsmappen arbeitet.
In diesem Fall eignet sich für den vollständigen Verweis ein With-Konstrukt besonders gut, da man dann den Objektnamen nicht ständig wiederholen muss, sondern mit einem Punkt vor den zugehörigen Unter-Objekten arbeiten kann. Ggf. ist es auch hilfreich, die Tabellen entsprechenden Objektvariablen zuzuweisen und mit den Objektvariablen zu arbeiten.
Worksheets("Datei_" & I)
Set varCopyDatei = .Range(.Cells(ranStart.Row, 1), .Cells(lngEndZcopy, 2))
End With
Zusätzlich solltest du bei der Find-Methode die Parameter lookin (Suche in) und lookat (gesamten Zellinhalt vergleichen) immer angeben, da diese Parameter sonst ggf. falsch von einer vorherigen Suche übernommen werden.
Gruß
Franz
Textdatei mit Vorschlag für angepassten Code:
https://www.herber.de/bbs/user/95220.txt

Anzeige
AW: Laufzeitfehler 1004
25.01.2015 01:29:27
daniel
Hallo Franz,
super perfekt
danke für die schnelle Lösung.
hat einwandfrei funktioniert.
Gruß
Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige