将数据从一个电子表格复制到另一个

我试图将数据从一个电子表格复制到另一个(已经有数据)。 我需要从源电子表格中复制所有填充的单元格到目标电子表格中的列B,但是在最后一行(不覆盖现有数据)

这是我到目前为止,但这不是我所需要的,并抛出一个错误说:

所需对象

在这一行: Last_Row = Range("A" & Rows.Count).End(xlUp).Row)

我试图在一个.VBS文件中做到这一点

 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Open("D:\Test2.xlsx") Set objWorksheet = objWorkbook.Worksheets("Sheet 2") Set objRange = objWorksheet.Range("A5:D5") objRange.Copy 'destination spreadsheet stuff: Set objExcel2 = CreateObject("Excel.Application") objExcel2.Visible = True Set objWorkbook2 = objExcel.Workbooks.Open("D:\Test1.xlsx") Set objWorksheet2 = objWorkbook2.Worksheets("Sheet1") Last_Row = Range("A" & Rows.Count).End(xlUp).Row objWorksheet2.Range("B" & Last_Row).Activate objWorksheet2.Paste 

我将Last_Row更改为Next_Row因为您需要在数据之后的下一行粘贴(因此+ 1 )。

并摆脱了第二个Excel实例,因为两个实例之间的粘贴非常有限,程序非常低效!

所以这应该工作得很好:

 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Open("D:\Test2.xlsx") Set objWorksheet = objWorkbook.Worksheets("Sheet 2") Set objRange = objWorksheet.Range("A5:D5") objRange.Copy 'destination spreadsheet stuff: Set objWorkbook2 = objExcel.Workbooks.Open("D:\Test1.xlsx") Set objWorksheet2 = objWorkbook2.Worksheets("Sheet1") Next_Row = objWorksheet2.Range("B" & objWorksheet2.Rows.Count).End(xlUp).Row + 1 objWorksheet2.Range("B" & Next_Row).Paste