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

时间:2013-05-29 03:32:55

标签: excel excel-vba vba

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

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

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

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:4)

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

    可以正常运行
    Sub test()  
      Application.Volatile (False)  
      Worksheets("Sheet1").Range("A1:A1").Clear  
    End Sub
    

答案 1 :(得分:1)

我不确定,但就我所知,你无法在功能中格式化Excel工作表,我们可以使用子程序来完成。

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