AW: Fehler bei Range(Cell(......
08.12.2015 11:05:21
Daniel
Hi
wenn du eine Range über zwei Cells definierst, dann muss das Tabellenblatt vor den beiden Cells innerhalb der Range stehen, denn wie schon von Sepp erwähnt, beziehen sich Zellbezüge (Cells, Range, Columns, Rows) ohne Tabellenblattangabe davor immer auf das aktive Tabellenblatt*.
das gilt auch für Zellbezüge innerhalb von Funktionen, steht in der übergreifenden Funktion schon das Tabellenblatt, so wird dieses NICHT auf die innenliegenden Zellbezüge übernommen.
du darfst sogar das Tabellenblatt vor der Range weglassen*
der Code müsste so aussehen:
Range(Sheets("Bauteile").Cells(4, 1), Sheets("Bauteile").Cells(letztezeile, 14)).Copy
weil das umständlich ist, kann man mit der WITH-Klammer arbeiten (beachte die Punkte)
With Sheets("Bauteile")
Range(.Cells(4, 1), .Cells(letztezeile, 14)).Copy
End with
oder mit der Resize-Funktion, um das Range(Cells(), Cells()) zu vermeiden:
Sheets("Bauteile").Cells(4, 1).Resize(letztezeile - 3, 14).Copy
* Ausnahme:
wenn der Code in einem Tabellenblattmodul steht, dann beziehen sich Zellbezüge ohne Tabellenblattangabe davor auf das Tabellenblatt des Moduls.
In diesem Fall muss dann auch vor der Range das Tabellenblatt angegeben werden (wenn man sich nicht auf das Modultabellenblatt beziehen will)
Gruß Daniel