AW: Range einer Workbook Variable in eine Variable
24.05.2018 17:57:44
Daniel
HI
das Problem ist folgendes: Range, Cells, Columns und Rows ohne Tabellenblattangabe beziehen sich immer auf das gerade aktive Tabellenblatt*
wenn du jetzt schreibst: Tabelle1.Range(Cells(), Cells()) kann es sein, dass die Cells auf einem anderen Blatt liegen als die Range, die sie definieren sollen und das führt zum Fehler.
Daher muss die Tabellenblattangabe auf jeden fall vor die beiden Cells. Vor der Range kann sie sogar entfallen.*
das wurde dir ja schon gezeigt.
ich bevorzuge die Zellenauswahl mit Resize, weil diese schön kurz ist:
Set Kopierbereich = A_BausteinWS.Cells(1, 1).Resize(LastRow, LastColumn)
sollte der kopierbereich nicht in Zeile 1 und Spalte 1 beginnen, müsstest du dann den Versatz von LastRow und Lastcolumn abziehen:
Set Kopierbereich = A_Baustein.Cells(x, y).Resize(LastRow - x + 1, LastColumn - y + 1)
Gruß Daniel
* das gesagte gilt für Code in einem allgemeinen Modul
steht der Code in einem Tabellenblattmodul, so wird bei fehlender Blattangabe immer das Modulblatt eingesetzt.
In diesem Fall muss auch vor der Range das Blatt angegeben werden:
A_BausteinWS.range(A_BausteinWs.cells(1, 1), A_BausteinWS.Cells(lastRow, lastcolumn))