5

希望这很容易,但我似乎找不到任何参考。

我如何打印存储在数组中的东西的位置,而不是其中的实际项目。

Array(0) = Dog
Array(1) = Cat
Array(2) = Fish

假设我搜索了数组并找到了猫,我如何打印存储猫的位置,在本例中为索引号 (1)。

提前致谢。

4

2 回答 2

5

数组的位置称为index

如果你运行一个循环,

For i = LBound(Array) to UBound(Array)
 if Array(i) = "Cat" then  '--restrict to find index of particular item
   MsgBox i '-- gives the location/index of Cat item
 End if
next i
  • LBound: 是下限,数组的起始索引。首先。它可以是零或任何值,因为 VBA 提供了将默认数组基数更改为 0 或 1 的灵活性。

  • UBound: 是上界,数组的结束索引。最后。

进一步阅读:如果数组已由 Range 分配,则 LBound 和 Ubound 冲突

于 2013-01-08T11:34:23.133 回答
5

在这种情况下使用ArrayList比使用简单数组更好。

Set myArray = CreateObject ("System.Collections.ArrayList")
With myArray
  .Add "Dog"
  .Add "Cat"
  .Add "Fish"
End With

intIndex = myArray.IndexOf ("Cat",0)

此外,您不必关心界限。

于 2014-05-27T08:26:48.090 回答