【问题标题】:Why does ThisWorkbook.Sheets.Range.Clearcontens give Application-defined or Object-defined error? [duplicate]为什么 ThisWorkbook.Sheets.Range.Clearcontens 会给出应用程序定义或对象定义的错误? [复制]
【发布时间】:2019-04-12 13:03:54
【问题描述】:

我想知道为什么下面一行给出了

“应用程序定义或对象定义的错误”

如果选择了Sheet6,则此行运行良好 - 没有错误消息。但是,如果选择了另一个工作表,Excel 会抛出上述错误消息。

ThisWorkbook.Sheets("Sheet6").Range(Cells(1, 2), Cells(12, 1000).End(xlToLeft)).ClearContents

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您需要使用您的工作表限定所有Range对象。

    With ThisWorkbook.Worksheets("Sheet6")
        .Range(.Cells(1, 2), .Cells(12, 1000).End(xlToLeft)).ClearContents
    End With
    

    您的工作表不符合 Cells() 的条件,因此它从 ActiveSheet 而不是 Worksheets("Sheet6") 中提取。

    所以,请记住,当您的想法“它只在它在该表上时才有效”,那么这将是问题所在。

    【讨论】:

    • 谢谢。既然您指出了这一点,我记得几年前我也遇到过类似的问题。我已经通过限定 Cells 解决了这个问题,但这次我没有解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多