gpt4 book ai didi

excel - 在 VBA Excel 上有 2 种方法处理 "ClearContents",但其中 1 种工作正常。为什么?

转载 作者:行者123 更新时间:2023-12-01 18:26:20 28 4
gpt4 key购买 nike

friend 们晚上好:

我想到了两种方法来清除 VBA 项目(在 MS Excel 中)的定义单元格范围内的内容:

  1. Worksheets("SheetName").Range("A1:B10").ClearContents
  2. Worksheets("SheetName").Range(Cells(1, 1), Cells(10, 2)).ClearContents

问题是第二种方式显示错误'1004 ' 当我没有观看当前工作表“SheetName”时(换句话说,当我没有将“SheetName”设置为 ActiveSheet 时)。

第一种方法在任何情况下都能完美工作。

为什么会发生这种情况?我怎样才能使用“第二种方式”而不出现这个错误?

最佳答案

这是因为您尚未使用工作表对象限定 Cells(1, 1)Cells(10, 2) 也是如此。为了让代码正常工作,它应该看起来像这样:

Dim ws As Worksheet

Set ws = Sheets("SheetName")
Range(ws.Cells(1, 1), ws.Cells(10, 2)).ClearContents

或者:

With Sheets("SheetName")
Range(.Cells(1, 1), .Cells(10, 2)).ClearContents
End With

编辑:当代码从标准模块或用户窗体运行时,Range 对象将从 Cells 对象继承工作表。如果您从工作表代码模块运行代码,则还需要限定 Range,如下所示:

ws.Range(ws.Cells(1, 1), ws.Cells(10, 2)).ClearContents

With Sheets("SheetName")
.Range(.Cells(1, 1), .Cells(10, 2)).ClearContents
End With

关于excel - 在 VBA Excel 上有 2 种方法处理 "ClearContents",但其中 1 种工作正常。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18962890/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com