vb 数组定义 下标越界 通用里明明有option base 1 但是出错时i=1,d(i)就下标越界了,不懂为什么???

2025-01-05 01:50:11
推荐回答(4个)
回答1:

Dim d() As Variant
这个只声明了一个数组, 但却没有对数组进行初始化
所谓初始化也就是让数组具有保存数据的空间;
再 dim d() xxxxxx 下面
redim d(数值) 才行, 这样默认的 下标就是 1 了

Option Base 1
他的含义是, 在对数组初始化时, 如果没有指定下标, 则 下标起始值是 1 , 不加optionxx 则是 0

回答2:

d的范围未定,所以会溢出
应该先Redim d(10)

回答3:

Dim d() As Variant

这里修改为
Dim d(10) 即可

回答4:

For i = 1 To 10
ReDim Preserve D(I)
d(i) = Int(Rnd * 100)
next