我正在尝试创建一个将param放入数组的函数,然后返回数组的随机索引值。我的代码在compile error: invalid qualifier
获得arr.Length
。到目前为止,我有:
Function myFunction(List As Range)
Dim arr()
Dim indx
arr = List
indx = (Int(Rnd()) * arr.Length) 'error here
myFunction = indx
End Function
不确定我是否正确使用数组,或者正确返回值 - 请帮助
修订1
用ubound和lbound替换.length - 现在我在单元格中应该返回数组的索引值时出现#VALUE
错误。
Function myFunction(List as Range)
Dim arr()
Dim indx as Integer
arr = List
indx = Int(Rnd() * (UBound(arr) - LBound(arr) + 1)) 'indx
myFunction = arr(indx)
End Function
答案 0 :(得分:0)
将数组的值分配给数组时,会得到尺寸为(1 to numberOfRows, 1 to numberOfCols)
的二维数组,因此解决方法是将arr(indx)
更改为
Function myFunction(List as Range)
Dim arr()
Dim indx as Integer
arr = List
indx = Int(Rnd() * (UBound(arr) - LBound(arr) + 1)) 'indx
myFunction = arr(indx,1)
End Function