2

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

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

另外请不要此时 Locked 属性为 True,即使我将其设为 False,如果我打印下一行,Locked 属性也为 True。

有什么建议么?

谢谢

4

2 回答 2

4
  1. VBA 中的函数通常是具有数据类型的变量。在您的示例中,缺少数据类型,这意味着数据类型设置为Variable.
  2. 显然,您的数据类型恰好是布尔值,因此函数设置为False.
  3. 使用函数更改单元格内容是一种不好的风格。但是,您的代码作为 Sub 可以毫无问题地工作:

    Sub test()  
      Application.Volatile (False)  
      Worksheets("Sheet1").Range("A1:A1").Clear  
    End Sub
    
于 2013-05-29T04:52:23.620 回答
1

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

Sub test()
  Worksheets("sheet1").Range("A1").Clear
End Sub
于 2013-05-29T05:00:58.693 回答