VBA:将二维数组传递给集合函数

VBA: Passing a 2-D Array into a Collection Function

我正在尝试将二维数组传递给一个函数,以 return 第一列中的唯一值集合。

当我 运行 它时,我得到一个编译错误(“编译错误:参数不是可选的”)

这是我的代码块:

Function uniqueColl(ByVal arr As Variant) As Collection
    Dim tempColl As New Collection
    
    For x = 1 To UBound(arr, 2)
        tempColl.Add arr(1, x)
    Next x
    
    uniqueColl() = tempColl

End Function

我试过在最后一行加上括号,没有括号并用“arr”填充括号,但是 none 这些东西似乎有效。任何提示将不胜感激。

谢谢。

这是问题的答案:

How to return a result from a VBA function

最后一行需要用一组

使用Set uniqueColl = tempColl

或者,

Function uniqueColl(ByVal arr As Variant) As Collection
    Set uniqueColl = new Collection
    For x = 1 To UBound(arr, 2)
        uniqueColl.Add arr(1, x)
    Next x
    
End Function