将整行复制并粘贴到另一个表单问题

我想从今天表单复制整行到如今的主表单的最后一行可用表单B2:B单元格值=“更新”。 不过,我想出了复制区和粘贴区不一样的大小问题。 我已经尝试了很多方法,但无法解决。 谁能帮忙? 先谢谢了。

Sub getnew() Dim Sheet1 As Worksheet Dim Sheet3 As Worksheet Dim lastrow As Integer Dim i As Integer Set Sheet1 = ThisWorkbook.Sheets("main") Set Sheet3 = ThisWorkbook.Sheets("today") lastrow = Sheet3.Range("C" & Rows.Count).End(xlUp).Row Dim erow As Long For i = 2 To lastrow erow = Sheet1.Range("C" & Rows.Count).End(xlUp).Row + 1 If Sheet3.Cells(i, 2).Value = "Update" Then Sheet3.Cells(i, 2).EntireRow.Copy Destination:=Sheet1.Range("B" & erow) End If Next i End Sub 

您正在尝试复制工作表的整个行,但是您从另一个工作表中粘贴该行,从B列开始。它们的大小不一样,因为整行包含16,384列,但从B列开始只有16383列。

你有几个select来解决这个问题:

您可以将整行粘贴到列A的另一张纸上,如下所示:

 Sheet3.Cells(i, 2).EntireRow.Copy Destination:=Sheet1.Range("A" & erow) 

或者你可以只复制你关心的列的数量,而不是试图复制整个行,就像这样[我不知道你在拷贝什么,所以你需要弄清楚到底是怎么回事你想要调整它的大小。 我假设10列就足够了]:

 Sheet3.Range(Cells(i, 2), Cells(i,11)).Copy Destination:=Sheet1.Range("B" & erow)