在Excel VBA中,如何编写一个可以在数组公式中使用的函数?
在Excel VBA中,我知道我可以在多个单元格上使用一个数组公式,selectCol C的单元格范围,然后按= A1:10 * B1:B10 Ctrl-shift-enter。
但是,假设代替乘法运算符,我希望它成为我的主人。
我将如何编写mymult函数?
Function MyMult(a As Integer, b As Integer) MyMult = a * b End Function
我有什么不工作
将参数声明为变体。 然后使用Application.Caller.HasArray
检查UDF是否被用作数组公式:
Public Function MyMult(a, b) If Application.Caller.HasArray Then Dim valsA(), valsB(), r& valsA = a.Value valsB = b.Value For r = LBound(valsA) To UBound(valsA) valsB(r, 1) = valsA(r, 1) * valsB(r, 1) Next MyMult = valsB Else MyMult = a * b End If End Function
请注意,在按下CTRL + SHIFT + ENTER之前,您需要selectC1:C3。