我正在尝试获取数组VBA中项目的索引,但我遇到了问题。
Const NoOfVol As Integer = 5
Dim vol(NoOfVol) As Integer
For Index = 1 To NoOfVol
vol(Index) = Cells(15 + Index, 8).Value
Next
阵列如下所示:( - 2500,-1250,0,1250,2500)。我用这种方式调用函数。
Function Find(ByVal Value As Variant, arr As Variant) As Integer
Find = Application.Match(Value, arr, False)
End Function
posOfVol = Find(-1250, vol)
但posOfVol = 3,应该是2.不确定我的错误在哪里。需要一些指导。
答案 0 :(得分:1)
您的数组实际上有效地声明为:
Dim vol(0 to NoOfVol) As Integer
除非您有Option Base 1
声明。由于你的循环从1到5,你永远不会填充数组的第一个元素,它保留默认值0.因此你的数组实际上是:
(0,-2500,-1250,0,1250,2500)
由于您正在寻找完全匹配,因此在第三个位置找到-1250。