我可以使用belwo代码将CopyFrom.xlsx的范围复制到CopyTo.xlsx:

Workbooks("CopyTo.xlsx").Worksheets("Sheet1").Range("B3:B14").Clear
Workbooks("CopyFrom.xlsx").Worksheets("Sheet1").Range("A1:A10").Copy
Workbooks("CopyTo.xlsx").Worksheets("Sheet1").Range("B3:B14").PasteSpecial Paste:=xlPasteValues


但是,当我将Clear语句放在第二位时,它会出现1004错误

Workbooks("CopyFrom.xlsx").Worksheets("Sheet1").Range("A1:A10").Copy
Workbooks("CopyTo.xlsx").Worksheets("Sheet1").Range("B3:B14").Clear
Workbooks("CopyTo.xlsx").Worksheets("Sheet1").Range("B3:B14").PasteSpecial Paste:=xlPasteValues


为什么会这样?

最佳答案

因为.Clear退出剪切/复制模式并设置Application.CutCopyMode = False。如果尝试.Paste,则.Clear之后没有要复制的内容,这会导致错误。

只需避免.Copy.Paste之间的任何代码来避免任何迭代。

关于excel - 将范围从一张纸复制到另一张纸时1004错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55354662/

10-14 18:13