复制一行并将其粘贴到另一张纸的底部

时间:2018-12-18 02:14:58

标签: excel vba

我想从工作表中复制第2行并将其粘贴到另一工作表(Sheet2)中的最后一个空行。到目前为止,这是我想出的:

Sub testj()

Rows(2).Copy
Worksheets("Sheet2").Range("A1").End(xlDown).Offset(1, 0).EntireRow.Insert

End Sub

这给出了错误:下标超出范围。我似乎无法找出问题所在。

1 个答案:

答案 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