我想从工作表中复制第2行并将其粘贴到另一工作表(Sheet2)中的最后一个空行。到目前为止,这是我想出的:
Sub testj()
Rows(2).Copy
Worksheets("Sheet2").Range("A1").End(xlDown).Offset(1, 0).EntireRow.Insert
End Sub
这给出了错误:下标超出范围。我似乎无法找出问题所在。
答案 0 :(得分:1)
运行代码时,没有名为“ Sheet2”的工作表(在 Tab 中):
运行时错误:“ 9”下标超出范围
当没有从A2到工作表底部的名为“ Sheet2”的数据时:
运行时错误'1004':应用程序定义或对象定义的错误
总结:您可能不小心重命名了“ Sheet2”。为避免这种情况,您可以使用工作表的代号,如下所示:
Rows(2).Copy
Sheet2.Range("A1").End(xlDown).Offset(1, 0).EntireRow.Insert
现在,您可以根据需要在标签中重命名工作表。
如果您100%确保至少前两行中有数据并且数据是连续的(没有空单元格),则您的代码可以正常工作。如果列中的数据不连续,则停止的第一个空单元格将不是最后一个。因此,您将覆盖现有数据。
因此,一列中的最后一个单元格通常是从底部开始计算的,如下所示:
Rows(2).Copy
Sheet2.cells(Rows.count,"A").End(xlUp).Offset(1, 0).EntireRow.Insert
这有一个限制,它永远不会复制到第1行中,但是由于您通常有标头,所以很好。
一种不受限制的方法是使用Find Method。