将Excel数组常量传递给VBA函数

use*_*076 3 excel vba

我有一个值是数组常量的单元格,例如,单元格A1设置为 ={1,2,3,4,5,6}

然后,我在VBA中定义了一个函数:

Function MyFunc(Data)
MyFunc = Data.Rows.Count
End Function
Run Code Online (Sandbox Code Playgroud)

我希望函数在可能的情况下返回数组的长度(6)=MyFunc(A1),但是使用调试器,我发现函数接收的'Data'变量仅包含该数组的第一个元素。 Data.Rows.Count评估为1并TypeName(Data)评估为“范围”

Ron*_*eld 5

还有另一种方法:

Function myFunc(Data)
    myFunc = UBound(Evaluate(Data.Formula))
End Function
Run Code Online (Sandbox Code Playgroud)