首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行时错误1004您不能在这里粘贴它,因为复制区域和粘贴区域大小不一样

运行时错误1004您不能在这里粘贴它,因为复制区域和粘贴区域大小不一样
EN

Stack Overflow用户
提问于 2020-11-05 13:46:30
回答 1查看 1.5K关注 0票数 0

在运行宏时,我得到了错误1004:

区块引号“运行时错误'1004':由于复制区域和粘贴区域大小不同,您不能在这里粘贴它。请选择粘贴区域中的一个单元格或相同大小的区域,然后再试着粘贴。”

我只选择一个单元格,不知道为什么会发生错误。宏是:

代码语言:javascript
运行
复制
Range("AD28").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.Offset(0, 6)).Select
Selection.Copy

Sheets("DadosPart").Select

Range("B4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False   '(HERE IS THE ERROR)

有人知道怎么修吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-05 14:14:43

如果Selection.End(xlDown)选择最后一个单元格,则会得到此错误,因为您复制了多个单元格。无法在最后一个单元格中粘贴范围,因为这超过了Excel工作表的行数。

查找您使用的最后一行(使用xlDown)的方法是不可靠的。若要查找最后使用的行,请使用以下内容:

代码语言:javascript
运行
复制
Cells(Rows.Count, "B").End(xlUp) 'find last used row in column B

也不要使用.Select --这是一个very bad practice

代码语言:javascript
运行
复制
Dim wsSource As Worksheet 'define your sheet
Set wsSource = ThisWorkbook.Worksheets("Sheet1") 'adjust your sheet name

wsSource.Range(wsSource.Range("AD28"), wsSource.Cells(wsSource.Rows.Count, "AD").End(xlUp)).Resize(0, 7).Copy

Dim wsDest As Worksheet 'define your sheet
Set wsDest Source = ThisWorkbook.Worksheets("DadosPart")

wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64698518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档