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

时间:2015-12-01 16:21:25

标签: excel vba excel-vba vbscript

我正在尝试将数据从一个电子表格复制到另一个电子表格(已有数据)。我需要将所有填充的单元格(从源电子表格)复制到目标电子表格中的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

1 个答案:

答案 0 :(得分:1)

我将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