【问题标题】:copy and paste entire row from one to another sheet issue将整行从一个复制并粘贴到另一个工作表问题
【发布时间】:2016-02-19 03:11:13
【问题描述】:

如果今天工作表 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

【问题讨论】:

  • 我不太明白你的问题,你能澄清你的问题吗?您希望从今天的工作表中复制哪一行到最后一个未使用的工作表主行?谢谢。

标签: vba excel


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多