下标越界怎么解决
答案:3 悬赏:20
解决时间 2021-02-15 07:10
- 提问者网友:野性
- 2021-02-14 09:01
下标越界怎么解决
最佳答案
- 二级知识专家网友:错过的是遗憾
- 2021-02-14 09:21
不知道你是什么样数据,这里举例:
Dim a(2) As String
Dim j = 0
Dim Request = {"AB", "BC", "CD", "DE"}
For Each i In Request
If Left(i, 1) = "C" Then
a(j) = i
Console.Write(a(j))
j += 1
End If
Next
Dim a(2) As String
Dim j = 0
Dim Request = {"AB", "BC", "CD", "DE"}
For Each i In Request
If Left(i, 1) = "C" Then
a(j) = i
Console.Write(a(j))
j += 1
End If
Next
全部回答
- 1楼网友:如果这是命
- 2021-02-14 11:40
只能在定义的范围内访问数组元素和集合成员。
此错误有以下的原因和解决方法:
引用了不存在的数组元素.
下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。
声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误: Dim MyArray() As Integer MyArray(8) = 234 ' 导致错误 。
Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。
相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。
引用了不存在的集合成员。
试着使用 For Each...Next 结构代替指定元素下标。
使用速写形式的下标,结果指定了错误的元素。
例如,当在集合上使用 ! 运算子时,! 自动指定了一个键。
例如 object!keyname.value 和 object.item(keyname).value 是一32313133353236313431303231363533e59b9ee7ad9431333335316633样的。
在此例中,集合中如果 keyname 表示一个错误键,错误就会产生。
若要改进此错误,在集合对象中使用正确的键名称或索引。
请采纳答案,支持我一下。
- 2楼网友:强势废物
- 2021-02-14 10:46
应该把print a(i)放在next i前面。
即生成一个随机数,就打印。循环执行。
放在后面的话应为执行了next,所以i = 6了,超出了a数组的下标范围,就越界了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯