Excel VBA – Range.Clear不清除单元格

我在我的VBA中试图清除Excel Sheet 1中的单元格A1,但它不会清除内容并返回False作为输出以下函数:

Function test() Application.Volatile (False) test = Worksheets("Sheet1").Range("A1:A1").Clear End Function 

另外请不要locking属性是在这个时候,即使我把它假,下一行,如果我打印它,locking属性是真的。

有什么build议么?

谢谢

  1. VBA中的函数通常是一个具有数据types的variables。 在你的例子中,数据types丢失,这意味着数据types被设置为Variable
  2. 显然,你的数据types恰好是布尔型的,所以一个函数被设置为False
  3. 使用函数改变单元格内容是一种不好的风格。 但是,您的代码没有问题作为一个Sub:

     Sub test() Application.Volatile (False) Worksheets("Sheet1").Range("A1:A1").Clear End Sub 

我不能确定,但​​据我所知,你不能在函数中格式化Excel表格,而是我们可以使用Subroutine来完成。

 Sub test() Worksheets("sheet1").Range("A1").Clear End Sub