将整行复制并粘贴到另一个工作表问题中

时间:2016-02-19 03:11:14

标签: excel vba excel-vba

如果今天工作表B2:B cell value =“Update”,我想将今天的整行从Sheet复制到主要工作表的最后一行。但是,我想出了复制区域和粘贴区域不一样的大小问题。我尝试了很多方法,但无法解决问题。有人可以帮忙吗?谢谢你提前。

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

1 个答案:

答案 0 :(得分:1)

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

您可以通过以下几种方式解决此问题:

您可以将整行粘贴到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)