代码之家  ›  专栏  ›  技术社区  ›  Iron Man

复制粘贴失败的Excel VBA

  •  0
  • Iron Man  · 技术社区  · 2 年前

    以下是我使用的代码(由“排序”工作表上的按钮触发):

    Sub EOS_Archive_2()
    Dim LCopyRow As Long
    Dim LDistRow As Long
     
    LCopyRow = Worksheets("Sorts").Cells(Sheet2.Rows.Count, 1).End(xlUp).Row
        
    LDistRow = Worksheets("Sorts Archive").Cells(Sheet10.Rows.Count, 1).End(xlUp).Row + 1
     
    Worksheets("Sorts").Range("C2: H" & LCopyRow).Copy _
    Destination:=Worksheets("Sorts Archive").Range("B" & LDistRow)
     
    End Sub
    

    以下是我正在复制的纸张:

    Sheet2 - "Sorts"

    “门”在B1单元。上表为“排序”。希望将C2复制到Hn(n是范围中的最后一行数据)

    Sheet10 - "Sorts Archive" 上面的表格是“排序档案”,这是我的代码的结果。应该将值粘贴到B到G列中。代码在每天结束时运行,并将在排序档案表中构建数据。所有粘贴的数据都应在最后一行数据之后开始。

    enter image description here

    上面显示了预期和期望的结果。不确定为什么我没有得到期望的结果。如有任何协助,我们将不胜感激。

    2 回复  |  直到 2 年前
        1
  •  1
  •   taller    2 年前
    • 上的列A Sorts 片材只有一个使用过的单元格(A1),即 LCopyRow = 1 。这就是为什么只复制一行的原因。
    • 请符合条件 Rows.Count 具有相同的图纸对象。
    • 您应该在两张工作表上按第2列找到最后一个数据行。
    LCopyRow = Worksheets("Sorts").Cells(Worksheets("Sorts").Rows.Count, "B").End(xlUp).Row
        
    LDistRow = Worksheets("Sorts Archive").Cells(Worksheets("Sorts Archive").Rows.Count, "B").End(xlUp).Row + 1
    
        2
  •  0
  •   Alok    2 年前

    尝试使用以下代码

    Sub EOS_Archive_2()
    Dim LCopyRow As Long
    Dim LDistRow As Long
     
    LCopyRow = Worksheets("Sorts").Cells(Sheet2.Rows.Count, 1).End(xlUp).Row
        
    LDistRow = Worksheets("Sorts Archive").Cells(Sheet10.Rows.Count, 1).End(xlUp).Row + 1
     
    Worksheets("Sorts").Range("C2:H" & LCopyRow).Copy
    Worksheets("Sorts Archive").Range("B" & LDistRow).PasteSpecial xlPasteAll
     
    End Sub