VBA:将数据从一个工作簿复制到另一个工作簿的空行时出现错误1004

VBA:将数据从一个工作簿复制到另一个工作簿的空行时出现错误1004,vba,excel,Vba,Excel,尝试自动化一些复制和粘贴工作,其中我有一个模板工作簿,当填写时,用户将运行一个宏,该宏将从现在填写的模板文档复制和粘贴一行,并将其粘贴到另一个工作簿的下一个空行。我在运行时不断遇到错误,我不完全确定如何修改代码以使其正常工作 Sub hello() ActiveSheet.Range(Cells(61, 1), Cells(61, 6)).Select 'selects the row of data from populated template Selection.Copy

尝试自动化一些复制和粘贴工作,其中我有一个模板工作簿,当填写时,用户将运行一个宏,该宏将从现在填写的模板文档复制和粘贴一行,并将其粘贴到另一个工作簿的下一个空行。我在运行时不断遇到错误,我不完全确定如何修改代码以使其正常工作

Sub hello()

ActiveSheet.Range(Cells(61, 1), Cells(61, 6)).Select   'selects the row of data from populated template
Selection.Copy                                          'copies that row
Workbooks.Open Filename:="destination workbook file path" 'opens destination workbook that needs the date pasted into
ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select  'selects the next empty row in destination workbook
Selection.PasteSpecial xlPasteValues                    'pastes values not formulas
ActiveWorkbook.Save                                     'saves destination workbook

ActiveWorkbook.Close SaveChanges:=True                  'closes destination workbook

End Sub
当我运行它时,错误发生在它选择下一个空行的行上。

如果列中除了第1行上的内容之外没有其他内容,请不要使用
End(xlDown)
。改用
End(xlUp)

Sub hello()
    Dim srcRng As Range
    Dim dstWb As Workbook
    Dim dstRng As Range

    Set srcRng = ActiveSheet.Range(ActiveSheet.Cells(61, 1), ActiveSheet.Cells(61, 6))
    Set dstWb = Workbooks.Open(Filename:="destination workbook file path")
    With ActiveSheet  'Not a good idea - would be better to use With dstWb.Worksheets("specific_sheet_name")
        Set dstRng = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(1, 6)
        dstRng.Value = srcRng.Value
    End With
    dstWb.Save
    dstWb.Close SaveChanges:=False 'no need to save again as far as I can see    
End Sub

上次保存目标工作簿时处于活动状态的工作表在A列中是否有A1中以外的内容?如果没有,您的
End(xlDown)
将选择工作表中的最后一行(可能是第1048576行),然后
偏移量(1,0)
将尝试选择最后一行下面的行。为什么Activesheet比使用dstWb更糟糕,我认为打开工作簿会激活第一张工作表,因此我可以使用它,如果这是一个明显的新信息,我深表歉意。@V.N打开工作簿时,
ActiveSheet
将是上次保存时处于活动状态的工作簿。您是否相信用户永远不会将其保存为与要更新的工作表不同的活动工作表?(即使
ActiveSheet
始终设置为
工作表(1)
,您相信用户永远不会更改工作表的选项卡顺序吗?)只有我有任何理由使用目标文件(加上它在工作簿中只有一张工作表),因此我怀疑模板文件的其他用户是否会在其中胡闹。不过,我明白直接指定表格的用意,我会作出修订,谢谢