我正在编写Excel函数,我希望它可以选择将第二个结果写入
Public Function foo(A As String, B As String, C As String, Optional optionalRes As Range = Nothing)
...
If not optionalRes is Nothing then
optionalRes.Value="Result!"
End If
End Function
不幸的是,这不起作用我收到此错误:模块fooBar的过程foo中的错误1004(应用程序定义的或对象定义的错误)。
我至少可以尝试做什么?
提前感谢您与我一起查看此问题!
答案 0 :(得分:1)
您应该使用 Sub 而不是 UDF。
UDF 用于返回值,而不是通过副作用更改单元格。
答案 1 :(得分:0)
这里有几点要考虑......
注意函数定义中的拼写错误,可以通过使用Option Explicit来避免。 optionaRes
!= optionalRes
。但我认为应该提高424,而不是1004。
这可能不适用于您,如果您从VBA代码中的其他地方调用此函数(并且不是来自用户定义的工作表函数),但我仍然建议不要使用函数来操作对象。这应该由子程序完成,并使用函数返回值或计算表达式等。