Asr*_*ael 11 excel vba excel-vba
晚上好朋友:
我想到了两种方法来清除VBA项目的已定义范围的单元格中的内容(在MS Excel中):
Worksheets("SheetName").Range("A1:B10").ClearContentsWorksheets("SheetName").Range(Cells(1, 1), Cells(10, 2)).ClearContents问题是第二种方式显示错误' 1004 '当我没有看当前的工作表"SheetName"(换句话说,当我没有"SheetName"作为ActiveSheet).
第一种方式在任何情况下都能完美运行.
为什么会这样?如何在没有此错误的情况下使用"第二种方式"?
tig*_*tar 14
这是因为你没有Cells(1, 1)使用工作表对象限定,同样适用于Cells(10, 2).要使代码工作,它应该看起来像这样:
Dim ws As Worksheet
Set ws = Sheets("SheetName")
Range(ws.Cells(1, 1), ws.Cells(10, 2)).ClearContents
Run Code Online (Sandbox Code Playgroud)
交替:
With Sheets("SheetName")
Range(.Cells(1, 1), .Cells(10, 2)).ClearContents
End With
Run Code Online (Sandbox Code Playgroud)
编辑:当从标准模块或用户窗体运行代码时,Range对象将从Cells对象继承工作表.如果您正在运行工作表代码模块中的代码,则还需要符合条件Range,如下所示:
ws.Range(ws.Cells(1, 1), ws.Cells(10, 2)).ClearContents
Run Code Online (Sandbox Code Playgroud)
要么
With Sheets("SheetName")
.Range(.Cells(1, 1), .Cells(10, 2)).ClearContents
End With
Run Code Online (Sandbox Code Playgroud)
Sid*_*out 11
那是因为你没有完全限定你的单元格对象.试试这个
With Worksheets("SheetName")
.Range(.Cells(1, 1), .Cells(10, 2)).ClearContents
End With
Run Code Online (Sandbox Code Playgroud)
注意细胞之前的DOT?
| 归档时间: |
|
| 查看次数: |
136510 次 |
| 最近记录: |