vba下标越界是什么意思?1、下标越界对话框弹出是运行时产生了错误,没法继续往下运行了。2、一般出现下标越界是取值时出现了“非正常值”,比如单元格的位置"A1"是正确的,用"A0"来表示单元格的话就会出现“下标越界”的错误。3、那么,vba下标越界是什么意思?一起来了解一下吧。
1、下标越界对话框弹出是运行时产生了错误,没法继续往下运行了。
2、一般指凳出现下标越界是取值时出现了“非正常值”,比如单元格高逗袭的位置"A1"是正确的,用"A0"来表示单元格的话就会出现“下标越界”的错误。
3、错误发生处VBA代码会中止的同时会用黄色标出那一行代码,将鼠标移动到标黄的代码出,当移动到不同戚兄的变量处时,VBA会提示每个变量的值。
4、根据变量值认真核对VBA代码,就会发现“非正常值”了
下标越界主要是括号里面的东西不存在,例如:
wb.Worksheets(Worksheets1).Range("C2").Copy
这个语句会导致下标越界,因为Worksheets1变量没有正确赋值,正确和余并的写法是:
wb.Worksheets(1).Range("C2").Copy
表毁唤示第一个工作表的C2复制,或者这唤迹样写:
wb.Worksheets("sheet1").Range("C2").Copy
表示名字叫做sheet1的表的C2复制
如果要使用变量来引用,例如:
x=1
wb.Worksheets(x).Range("C2").Copy
下标越界是吵乎猛不存在对应的工作薄、工升桥作表,检查:Workbooks("beian").Worksheets("sheet1") Workbooks("nine").Worksheets("镇圩"顷罩)
Excel中vba提示下标超界,说明对象不存在或者数组元素不存在。
举个简单的例子:工作表中没有"1月"这个工作表,却用Sheets("1月");数组定义的是arr(1 to 10),却用Arr(11),都会出现下标越界的提示。
简单的理解:下标越界就是引用超出了所在的范围。
1、当我们在excel的VBA中输入下面代码,运行,就会出现“运行时错误9下标越界”的提示。代码如下:
Sub a()
Dim arr() As String
arr(1) = "你好"
End Sub
2、其实上面的“运行时错误9下标越界”是因为定义的动态数组没有确定维数和尺寸。定义成固定维数和尺寸的,或用Redim界定一下维数和尺寸即可解决此问题。
改正后的代码如下:
Sub a()
Dim arr() '定义一个动态数组
Dim i As Integer
ReDim arr(1 To 3) '定义一个3个元素的数组,并且对数组进行初始化
arr(1) = 3
arr(2) = 4
arr(3) = 5'在下面语句重新定义一个10个元素的数组,清除前面的元素,并重新分配新的存储变量
ReDim arr(1 To 10)
For i = 1 To 10
arr(i) = i
Next i
End Sub,就可以了
扩展资料:
VB中的数组越界中者
引用了不存在的数组元素。
下标越界错误大概有以下的原因和解决方法:
1.弓用了不迟顷仔存在的数组元素。
2.下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。 检查数码汪组的声明以确认其上界和
下界。若使用的是重新指定范围的数组,应使用UBound和LBound函数来决定数组访问。如果索弓|指定为变量,
应检查变量名的拼写。
3.声明数组时没有指定元素的数目。
4.引用了不存在的集合成员。试着使用For Each..Next结构代替指定元素下标。
使用速写形式的下标,结果指定了错误的元素。
5.下标越界不存在对应的工作薄、工作表名称是否写正确。
具体问题还乎厅需具体分析
以上就是vba下标越界是什么意思的全部内容,下标越界一般是指定的Workbooks名字不存在,或者Sheets指定的名字不存在,黄色语句行容易造成下标越界的可能是【55数据模版】,一般应该有.xls的尾巴。验证究竟是哪个引起越界的。