Excel VBA:复制/粘贴范围

时间:2018-02-19 20:31:21

标签: excel vba excel-vba

我正在编写一个宏来打开许多不同的工作簿,从每个工作簿复制数据,并编译成一个“主”工作簿。在下面的代码示例中,wb2是我正在复制的工作簿之一,而wb1是主文件。

lrow3A是源工作簿中的最后一行数据。 Lrow3是主工作簿中的最后一行数据。

lrow3A = wb2.Sheets("DCF3").Cells(1048576, 2).End(xlUp).Row
wb2.Sheets("DCF3").Range(Cells(6, 1), Cells(lrow3A, 16)).Copy _
    Destination:=wb2.Worksheets("DCF3").Cells(lrow3 + 1, 2)

我在副本行上收到“下标超出范围”错误。

1 个答案:

答案 0 :(得分:2)

我认为你应该编码:

With wb2.Sheets("DCF3") 'reference "source" worksheet
    lrow3A = .Cells(.Rows.Count, 2).End(xlUp).Row ' get referenced sheet column "B" last not empty cell row index 
    .Range("A6:P" & lrow3A).Copy _
    Destination:=wb1.Worksheets("DCF3").Cells(lrow3 + 1, 2) 'copy referenced sheet range in columns A:P from row 6 to row 'lrow3A' and paste it to "master" workbook sheet "DCF3" starting from its column B cell at row 'lrow3'+1
End With