Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige