获取数组VBA中的项索引

时间:2015-01-21 09:11:45

标签: arrays excel vba excel-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.不确定我的错误在哪里。需要一些指导。

1 个答案:

答案 0 :(得分:1)

您的数组实际上有效地声明为:

Dim vol(0 to NoOfVol) As Integer

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

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

由于您正在寻找完全匹配,因此在第三个位置找到-1250。