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