bereits folgendes gefunden.
Range(Cells(10, 1), Cells(20, 5)).Value = .Range(.Cells(1, 1), .Cells(10, 5)).Value
Wenn ich aber nun davor immer workbooks und worksheets setze, spuckt er mir fehlermeldungen aus:-(
Range(Cells(10, 1), Cells(20, 5)).Value = .Range(.Cells(1, 1), .Cells(10, 5)).Value
dim ws1 as worksheet
dim ws2 as worksheet
set ws1 = Sheets("Blatt1") 'Ziel
set ws2 = Sheets("Blatt2") 'Ausgangslage
ws1.range(ws1.cells(10,1), ws1.cells(20,5)).value = ws2.range(ws2.cells(1,1),ws2.cells(10,5)). _
value
Noch eleganter wäre es mit einem Code zu arbeiten der Resize beinhaltet, aber dafür kannst du Google anwerfen und mal nachlesen wie das funktionieren könnte.
Sub test()
Dim Wb1, Wb2, Sh1, Sh2
Set Wb1 = Workbooks("Mappe1.xlsm")
Set Wb2 = Workbooks("Mappe2.xlsm")
Set Sh1 = Wb1.Sheets("Tabelle1")
Set Sh2 = Wb2.Sheets("Ziel")
With Sh1
.Range(.Cells(10, 1), .Cells(20, 5)).Copy
Sh2.Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End With
End Sub
Set wb1 = Workbooks("80526.xls") 'Ziel
Set wb2 = Workbooks("Mappe2.xlsx") 'Ausgangslage
Set ws1 = Sheets("Tabelle1") 'Ziel
Set ws2 = Sheets("Tabelle2") 'Ausgangslage
wb1.ws1.Range(ws1.Cells(1, 1), wb1.ws1.Cells(10, 5)).Value = wb2.ws2.Range(wb2.ws2.Cells(1, 10), _
wb2.ws2.Cells(10, 5)). _
Value
End Sub
Ich bekomme dann immer einen Laufzeitfehler 438:(
Set ws1 = wb1.Sheets("Tabelle1") 'Ziel
Set ws2 = wb2.Sheets("Tabelle2") 'Ausgangslage