在excel vba函数中使用数组常量

我有一个在VBA中的types的函数

Function MyFunc(Indx As Integer, k As Long, Rho As Range, A As Range) As Variant .... End Function 

在Excel工作表中被称为用户定义的函数。 当最后两个参数是范围调用时

结果= MyFunc(1,98,A1:A2,B1:B2))

它工作正常。 但是,当我尝试直接使用数组常量而不是范围

结果= MyFunc(1,98,{10,11},{20,30})

它返回一个#VALUE错误。

我以为我可以通过重新定义最后两个参数为doubletypes的数组来解决它,但是这也不起作用

 Function MyFunc(Indx As Integer, k As Long, Rho() As Double, A() As Double) As Variant .... End Function 

有人有一个灵活的解决scheme的build议,这将允许调用方法:通过范围,以及一个数组常量?

你可以声明你的两个参数为Varianttypes,然后在函数中检查使用TypeName(varname)函数传递给它们的内容。

也许你可以在调用函数的时候将数组转换成一个范围对象。

结果= MyFunc(1,98,范围(10,11),范围(20,30))