【问题标题】:Range(cells) vba usage范围(单元格)vba 用法
【发布时间】:2018-12-18 20:28:50
【问题描述】:

我过去的大部分编码都是通过记录然后找到我需要的部分并在代码中使用它们来完成的。我正在尝试继续做更好的事情并简化复制等简单功能。

但我遇到了一个我似乎不明白的问题:

Sheets("main").Range(Cells(1, 1), Cells(2, 2)).Copy Sheets("Backup").Range(Cells(1, 1), Cells(2, 2))

以错误结束:运行时错误 1004,应用程序定义或对象定义错误。

虽然我尝试这样做没有问题:

Sheets("main").Cells(lastrowMain, lastcolumn).Copy Sheets("Backup").Range("A" + CStr(lastrowBackup + 1))

我认为问题是要粘贴到的所选位置的大小,所以我只是将它们匹配为相同,但我仍然得到相同的错误。

或者也许我选择一系列单元格的方式是错误的,有更好的方法吗?

【问题讨论】:

    标签: excel vba range


    【解决方案1】:

    这是一个常见问题,因为您没有添加对Cells 的工作表引用。在这种情况下将假定活动工作表,如果不是main(或Backup),您的范围将跨越不同的工作表,因此会出现错误。

    相反,完全符合以下条件:

    With Sheets("main")
        .Range(.Cells(1, 1), .Cells(2, 2)).Copy Sheets("Backup").Range(Sheets("Backup").Cells(1, 1), Sheets("Backup").Cells(2, 2))
    End With
    

    【讨论】:

    • 非常感谢您,先生!我一定要继续使用这个逻辑!
    猜你喜欢
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    相关资源
    最近更新 更多