vba范围(“A1”)。值给出#Value!输入功能时

时间:2017-07-14 19:57:26

标签: excel vba excel-vba excel-udf

我希望它从一个从Excel电子表格调用的VBA函数返回多个值,但总是得到错误#Value!

网上发现的一个例子:

Sub ReturnCellValue()
    Worksheets("Sheet1").Range("A1").Value = 3.14159
End Function

此函数返回#Value!

Function ReturnCellValue()
    Worksheets("Sheet1").Range("A1").Value = 3.14159
End Function

这一行代码适用于即时winnow。

Worksheets("Sheet1").Range("A1").Value = 3.14159

我发现的所有例子都是sub。你如何从函数中调用sub?

1 个答案:

答案 0 :(得分:2)

此功能:

Function ReturnCellValue()
    Worksheets("Sheet1").Range("A1").Value = 3.14159
End Function
  • 不返回单元格的值,而是设置单元格的值(并且VBA' s =运算符形成一个语句,而不是表达式,因此您无法嵌套赋值)。
  • 不返回任何值,因为您没有返回值(通过分配函数的名称在VBA函数中返回值)。

你可能想要这个:

Function ReturnCellValue() As Variant
    ReturnCellValue = Worksheets("Sheet1").Range("A1").Value
End Function