excel - range.copy 目标 "A1"与 "Cells(1,1)"Excel/VBA

标签 excel syntax copy-paste vba

考虑以下内容:

    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/

相关文章:

excel - 为什么 PowerShell 不想将我的文件另存为 CSV

excel - 在 Excel 中将年份和 ISO 周转换为日期?

excel - 使用 Golang 在 excel 中查找最后填充的行

VBA LOOP 在所有工作表上创建相同的标题?

c++ - 使用旧语法的 .NET C++ 内存泄漏?

python - 什么是 [ :] mean in python?

javascript - 如何在使用前检测复制到剪贴板功能

java - 使用数组初始化语法有条件地添加 "optional items"?

c# - 如何使用 C# 将表格粘贴到 Ms-Word 文档的末尾

java - 程序看不到文件,但它存在。 FileNotFoundException异常