将命名范围作为Variant传递时,UBound函数不起作用

时间:2014-01-18 21:55:29

标签: arrays vba variant

MyArray是一个包含整数的(100 row x 1 column)命名范围。

这不起作用:

Function myFunc(MyArray As Variant)

myFunc = UBound(MyArray)

这也不是:

Function myFunc(MyArray As Variant)

myFunc = UBound(MyArray, 1)

我确定这是一个相当基本的错误,但我已经做了相当多的谷歌搜索并且未能为自己找到答案。非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

确保传递变量数组,而不是Range对象。该函数接受variant数据类型,可以是任何类型。为了确保它是一个数组,传递.Value

Sub Test()

Debug.Print myFunc(Range("A1:A50").Value)

End Sub

Function myFunc(MyArray As Variant)

myFunc = UBound(MyArray, 1)

End Function