获取数组中项目的索引 VBA

Getting the index of item in an array VBA

我正在尝试获取数组中项目的索引 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。不知道我的错误在哪里。需要一些指导。

您的数组实际上声明为:

Dim vol(0 to NoOfVol) As Integer

除非你有Option Base 1声明。由于您的循环从 1 到 5,因此您永远不会填充数组的第一个元素并且它保留其默认值 0。因此您的数组实际上是:

(0,-2500,-1250,0,1250,2500)

并且由于您要查找精确 匹配项,因此在第三个位置找到了 -1250。