从工作表1复制项目并粘贴到工作表2

时间:2017-04-25 06:07:09

标签: excel-vba vba excel

此代码出现的对象错误范围(错误1004)。 你可以帮我调试吗?

Sub ggg()

    last = Sheet1.Cells(1, 1).End(xlDown).Row
    last1 = Sheet2.Cells(1, 1).End(xlDown).Row

    Sheet1.Range(Cells(1, 1), Cells(last, 2)).Copy Sheet2.Range(last1 + 1, 1)

End Sub

1 个答案:

答案 0 :(得分:0)

问题在于,这并没有找到最后使用的单元格

last = Sheet1.Cells(1, 1).End(xlDown).Row
last1 = Sheet2.Cells(1, 1).End(xlDown).Row

有时会跳转到Excel的最后一个单元格,然后尝试在此处添加+1

Sheet2.Range(last1 + 1, 1)

失败,因为在最后一个单元格之后没有其他单元格。

使用

last = Sheet1.Cells(Sheet1.Cells.Rows.Count, 1).End(xlUp).Row
last1 = Sheet2.Cells(Sheet2.Cells.Rows.Count, 1).End(xlUp).Row

找到最后使用的单元格。

第二个问题是Sheet2.Range(last1 + 1, 1) doesn't accept two numeric parameters(正如YowE3K在评论中指出的那样)。因此,请使用Sheet2.Cells(last1 + 1, 1)

VBA最佳实践包括(1)永远不会假设工作表和(2)使用完全合格的单元格对象。