vba range(“A1”)。value给出#Value! 当input一个函数

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

在网上find一个例子:

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

这个函数返回#Value!

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

这一行代码适用于即时的叽叽喳喳。

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

我发现的所有例子都是分支的。 你如何从一个函数调用一个子?

这个function:

 Function ReturnCellValue() Worksheets("Sheet1").Range("A1").Value = 3.14159 End Function 
  • 不返回单元格的值,而是设置单元格的值(而VBA的=运算符形成一个语句,而不是一个expression式,所以你不能嵌套分配)。
  • 不返回任何值,因为你没有返回一个值(通过赋给函数的名字,在VBA函数中返回一个值)。

你可能想要这个:

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