VB:如何返回vb一维数组某个元素所对应的下标的值?

请问各位vb高手,如何返回vb一维数组某个元素所对应的下标的值?就是说,比如array(5)=200,那么我想知道括号里面的5!多谢各位!问题解决一定加分!

Array(arglist)

所需的 arglist 参数是一个用逗号隔开的值表,这些值用于给 Variant 所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0 的数组。

说明

用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,第一条语句创建一个 Variant 的变量 A。第二条语句将一个数组赋给变量 A。最后一条语句将该数组的第二个元素的值赋给另一个变量。

Dim A As Variant
A = Array(10,20,30)
B = A(2)

使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array )名称限定。如果是由类型库名称限定,则 Array 不受 Option Base 的影响。

注意 没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-19
但是楼主的问题有漏洞,如果一个数组中有一些值相同,那么返回的下标就不止一个。
pxnlxx 的答案是返回的第一个。
第2个回答  推荐于2016-10-29
最简单的就是比较,找出这个元素的位置,然后输出

array1 = Array(1, 2, 3, 4, 5)
For i = 0 To UBound(array1)
If array1(i) = 2 Then
Print i
Exit For
End If
Next i追问

那如果这个数组有一万多项,这种算法岂不是很不优化?而且,诚如楼下那位所言,如果两个值相等,就会返回两个。。苦恼。我是在list中显示了两组数,给他们编了一列序号。即:序号 波长 光谱值 ,我现在能得到某波长,想调用对应的光谱值。求解。

追答

对了,我觉得你的问题不太清楚,你要调用其值,这些值肯定是有某种规律的,不能随便说下标为500,或是5,你要找的是这个规律,或是你的要求,从你的问题看不出这些。

参考资料:然后

本回答被提问者采纳
相似回答