此代码出现的对象错误范围(错误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
答案 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)使用完全合格的单元格对象。