【发布时间】:2020-10-13 13:17:09
【问题描述】:
我有一个执行数值计算的 VBA 函数,例如:
Function MyFunc(ByVal x As Double, ByVal a As Double) As Double
MyFunc = x + a
End Function
我想使用工作表公式将此函数应用于数组并对值求和。比如在单元格B1我想输入:
=SUM(MyFunc(A1#, 2))
同义(如果A1#是动态数组A1:A3):
=SUM(MyFunc(A1,2), MyFunc(A2,2), MyFunc(A3,2))
我是否可以不必在我的 VBA 函数中显式编写数组循环来执行此操作?
【问题讨论】:
-
我不这么认为...一旦您将数组作为第一个参数传递,您就会得到类型不匹配。
-
@FaneDuru,“UDF 函数不能在其计算中使用目标单元格值”是什么意思?上述函数适用于单个单元格(而不是数组)。
-
@BigBen,如果我尝试,我确实会遇到错误。但是,如果我使用内置函数而不是
MyFunc,那么它可以工作。我可以将 MyFunc 更改为循环x并返回一个数组,但我有几个这样的函数,如果可能的话,我希望避免在每个函数中重复样板循环。 -
因为内置函数是用来处理数组的。
-
@BigBen:Upsss。他是对的,那么……
标签: arrays excel vba excel-formula