我有一个运行宏的活动打开工作簿。我需要打开另一个(新)工作簿,并从“新”文件的第一个工作表复制一系列单元格,并将这些行附加到当前工作簿中工作表的底部。我想避免使用剪贴板复制/粘贴。这里是我的代码:将范围从新工作簿复制到活动工作簿而不使用剪贴板
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。 –