Vba Excel错误1004:复制区域和粘贴区域不为';大小不一样

Vba Excel错误1004:复制区域和粘贴区域不为';大小不一样,vba,excel,Vba,Excel,我正在尝试将许多电子表格中的数据复制到一张表格中。我从A:L范围复制数据,当数据从A:L粘贴到汇总表上时,它不会出现任何问题。我正试图将数据粘贴到B:M列上,这是我收到1004错误的时候。我在MSDN网站上有一个稍微修改过的代码: 当我使用DestSh.Cells(Last+1,“A”)将更改为使用DestSh.Cells(Last+1,“B”) ”循环浏览所有工作表并将数据复制到 '摘要工作表。 对于ActiveWorkbook.工作表中的每个sh 如果sh.Name DestSh.Name和

我正在尝试将许多电子表格中的数据复制到一张表格中。我从A:L范围复制数据,当数据从A:L粘贴到汇总表上时,它不会出现任何问题。我正试图将数据粘贴到B:M列上,这是我收到1004错误的时候。我在MSDN网站上有一个稍微修改过的代码:

当我使用DestSh.Cells(Last+1,“A”)将
更改为使用DestSh.Cells(Last+1,“B”)

”循环浏览所有工作表并将数据复制到
'摘要工作表。
对于ActiveWorkbook.工作表中的每个sh
如果sh.Name DestSh.Name和sh.Name“透视表”和sh.Name“组合”,则
'查找包含摘要数据的最后一行
'和源工作表。
最后一行=最后一行(DestSh)
shLast=FindLastRow(sh)
'如果源工作表不为空且最后一个
'行>=StartRow,复制范围。
如果shLast>0且shLast>=StartRow,则
'设置要复制的范围
设置CopyRng=sh.Range(sh.Rows(StartRow),sh.Rows(shLast))
StartRow=2
'测试以查看摘要中是否有足够的行
'工作表以复制所有数据。
如果Last+CopyRng.Rows.Count>DestSh.Rows.Count,则
MsgBox“&_
“用于放置数据的摘要工作表。”
下地狱
如果结束
'此语句复制值和格式。
复制,复制
带目标单元格(最后+1,“A”)
.Paste特殊XLPaste值
Application.CutCopyMode=False
以
如果结束
如果结束
下一个
来自Domenic:


尝试将复制范围设置为:

设置CopyRng=Intersect(sh.UsedRange,sh.Range(sh.Rows(StartRow),sh.Rows(shLast)))

解决方案:

        If shLast > 0 And shLast >= StartRow Then
            'Set the range that you want to copy
            'Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))
            'StartRow = 2

            Set CopyRng = Intersect(sh.UsedRange, sh.Range(sh.Rows(StartRow), sh.Rows(shLast)))
来自Domenic:


尝试将复制范围设置为:

设置CopyRng=Intersect(sh.UsedRange,sh.Range(sh.Rows(StartRow),sh.Rows(shLast)))

解决方案:

        If shLast > 0 And shLast >= StartRow Then
            'Set the range that you want to copy
            'Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))
            'StartRow = 2

            Set CopyRng = Intersect(sh.UsedRange, sh.Range(sh.Rows(StartRow), sh.Rows(shLast)))

CopyRng
的地址是什么?工作表,特别是在被复制的区域(或目的地)中是否包含合并的单元格?只是好奇-使用DestSh.Cells(Last+1,2)的
是否会出错?另外,
Last
a
Long
还是
Integer
?尝试将您的复制范围设置为
Set CopyRng=Intersect(sh.UsedRange,sh.range(sh.Rows(StartRow),sh.Rows(shLast))
。另外,您的两个函数
LastRow
FindLastRow
,这可能是个问题,但是您还没有向我们展示这些实现……什么是
CopyRng
?工作表,特别是在被复制的区域(或目的地)中是否包含合并的单元格?只是好奇-使用DestSh.Cells(Last+1,2)
,是否会出现错误?另外,
Last
a
Long
还是
Integer
?尝试将您的复制范围设置为
Set CopyRng=Intersect(sh.UsedRange,sh.range(sh.Rows(StartRow),sh.Rows(shLast))
。另外,您的两个函数
LastRow
FindLastRow
,这可能是个问题,但您还没有向我们展示这些实现。。。