VBA初学者经常会遇到下标越界的问题。
虽然下标越界有各种各样的原因,但是下标越界的提示框终究会出现,因为对象不存在或者越界了。
Microsoft Visual Basic ~运行时错误“9”~下标越界,错误原因分析:
使用数组时,如果数组的下标超出了数组的可接受值范围,就会发生此错误。这个数组可以自定义,也可以由系统自带。
1.自定义数组:
dim arr1(1到5)
arr1(10)=555
因为arr1数组是1到5,但这里是10,所以会报告下标越界错误。
2.系统附带的阵列:
excel工作表有三张工作表。
子下标越界()
MsgBox表(4)。名字
末端接头
这里的Sheets(4)明显超过了3张,所以也会报告下标越界错误。
总之有很多情况会造成“下标越界”的错误。
下标错误可能有以下原因和解决方法:
引用了不存在的数组元素。
下标大于或小于可能的下标范围,或者应用程序这一侧的数组没有指定的范围。检查数组的声明以确认其上限和下限。如果使用具有新范围的数组,应该使用UBound和LBound函数来确定数组访问。如果索引被指定为变量,请检查变量名的拼写。
声明数组时没有指定元素的数量。
引用了不存在的集合成员。尝试使用For Each.结构,而不是指定的元素下标。
在草图形式中使用下标,结果指定了错误的元素。
下标越界时没有对应的工作簿,工作表名称书写正确。
还是那句话,当你遇到VBA下标越界的错误时,你不会慌张,至少你大概知道原因。我们可以参考上述思路,通过修改代码来解决下标越界的错误。