0

以下用户定义的 VBA 函数未给出特定错误但未返回值。我不知道为什么。谁能建议如何修改此代码以使其正常工作?非常感谢!

Public Function mytest(myrange As Range)

myrange(1).Value = myrange(1).Value * 44

mytest = myrange(1).Value

End Function

例如,我将在单元格中调用此函数,如下所示;

=mytest(A1)

单元格 A1 将包含一个值,例如 10。我希望函数返回值 440。

4

1 回答 1

1

您在工作表中调用/使用的用户定义函数不能(添加:没有外部帮助,例如复杂的 win-api 调用)更改应用程序环境。也就是说,您不能在一个单元格中使用 UDF 来更改任何其他单元格,无论是其值还是格式。

这么说吧,没有 Excel 函数可以改变另一个单元格吗?

如果要更改单元格的值,则需要创建并运行子程序

补充:你想在工作表中使用的函数应该像任何 Excel 函数一样;它执行计算并返回一个值。例如:

Public Function MyTest(myRange As Range) As Double
    'return a value by assigning it to the function name:
    MyTest = myRange(1).Value * 44
End Function
于 2013-07-03T01:13:41.920 回答