我有一個運行宏的活動打開工作簿。我需要打開另一個(新)工作簿,並從「新」文件的第一個工作表複製一系列單元格,並將這些行附加到當前工作簿中工作表的底部。我想避免使用剪貼板複製/粘貼。這裏是我的代碼:將範圍從新工作簿複製到活動工作簿而不使用剪貼板
Sub getnewrows()
Dim lngLast As Integer, newLast As Integer
Dim NewRows As Workbook
Dim MyWkbk As Workbook
Dim rSrc As Range
Dim rDst As Range
Set MyWkbk = ActiveWorkbook
Sheets(3).Select
lngLast = Range("A" & Rows.Count).End(xlUp).Row
Set NewRows = Application.Workbooks.Open("pathtomyfile.xls")
newLast = NewRows.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Set rSrc = NewRows.Sheets(1).Range("A5:L" & newLast)
Set rDst = MyWkbk.Sheets(3).Range("A" & lngLast + 1)
rDst = rSrc.Value
NewRows.Close
Set MyWkbk = ActiveWorkbook
End Sub
與我(目前)的工作簿已經打開開始,和「新」一個封閉的,當我運行宏,它僅複製了一個小區。
和目標是不夠好? –
'Set rDst = MyWkbk.Sheets(3).Range(「A」&lngLast + 1)'或'Set rDst = MyWkbk.Sheets(3).Cells(lngLast + 1,「A」)'BTW'lngLast'尚未分配值,因此默認爲零 –
另外,如果您想在將數據提交到主文檔之前過濾數據,則可以考慮在ADO中使用SQL。 –