VBa复制错误“由于复制和粘贴区域的大小不同,我们无法粘贴”

时间:2018-11-10 07:24:09

标签: excel vba copy

请帮助我调试此代码。我正在从100个文件中编写报告。该代码适用于几乎所有文件,但对于某些文件会弹出此错误。所有文件的格式都相同,只是行数不同

sh.Range("A2:H" & lastRow).Copy 
Destination:=wb1.Worksheets("MainSheet").Range("A" & mainrow)

A2&last row = A2:H17408
"A" & mainrow=A1033559

2 个答案:

答案 0 :(得分:0)

有多个原因会收到此错误消息 1.将合并的单元格粘贴到非合并的单元格时,反之亦然。 2.当您在工作表上应用过滤器并尝试粘贴与复制的数据大小不同的数据时。

答案 1 :(得分:0)

您的代码太有限,无法确保100%正确答案,因为我们看不到您如何定义变量。 但是,假设已正确定义它们,则最好使用以下方法:

Dim ws as worksheet
Set ws = wb1.Sheets("MainSheet")

' Range goes from columns A to H with mainrow and LastRow as variable rows
ws.Range(ws.Cells(mainrow, 1), ws.Cells(LastRow, 8)).Value = sh.Range(sh.Cells(mainrow, 1), sh.Cells(LastRow, 8)).Value

代替复制粘贴。 除此之外,请确保正确定义了mainrow和LastRow。如有疑问,请将您的代码的这一部分添加到已编辑的问题中,以便我们进行查看。