考虑以下内容:
Sheets("X").Activate
Sheets("X").Range(Cells(1, 1), Cells(1, 30)).Copy Destination:=Sheets("Y").Range("A1") 'Syntax 1
Sheets("X").Range(Cells(1, 1), Cells(1, 30)).Copy Destination:=Sheets("Y").Range(Cells(1, 1)) 'Syntax 2
为什么语法 1 有效,而语法 2 遇到“应用程序定义的或对象定义的错误”?
最佳答案
不合格Cells(1,1)
属于ActiveSheet,目前是Sheets("X"),所以不属于Sheets("Y")
.
OTOH:这应该有效:
Destination:=Sheets("Y").Range(Sheets("Y").Cells(1, 1), Sheets("Y").Cells(1, 1))
' ^^^^^^^^^^^^^
不要使用不合格的范围。放弃
Activate
stuf 完全来自您的代码。
关于excel - range.copy 目标 "A1"与 "Cells(1,1)"Excel/VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44805982/