越界
Excel 运行时错误9下标越界的处理方法
Excel中vba提示下标超界,说明对象不存在或者数组元素不存在。 举个简单的例子:工作表中没有"1月"这个工作表,却用Sheets("1月");数组定义的是arr(1 to 10),却用Arr(11),都会出现下标越界的提示。 简单的理解:下标越界就是引用超出了所在的范围。 当我们在excel的VBA中输入下面代码,运行,就会出现“运行时错误9下标越界”的提示。代码如下:Sub a()Dim arr() As Stringarr(1) = "你好"End Sub 其实上面的“运行时错误9下标越界”是因为定义的动态数组没有确定维数和尺寸。定义成固定维数和尺寸的,或用Redim界定一下维数和尺寸即可解决此问题。 改正后的代码如下:Sub a()Dim arr() ‘定义一个动态数组Dim i As IntegerReDim arr(1 To 3) ‘定义一个3个元素的数组,并且对数组进行初始化arr(1) = 3arr(2) = 4arr(3) = 5‘在下面语句重新定义一个10个元素的数组,清除前面的元素,并重新分配新的存储变量ReDim arr(1 To 10)For i = 1 To 10arr(i) = iNext iEnd Sub
Excel VBA下标越界原因和方法详解
文章介绍excelVBA下标越界的原因,以及下标越界的解决方法。 VBA初学者,常常会遇到下标越界问题。 尽管出现下标越界的原因是多种多样,但终究是因为对象不存在或者超出范围,就会出现下标越界的提示框,如下图所示: Microsoft Visual Basic ~运行时错误’9’~下标越界,错误原因分析: 如果使用数组时,数组的下标超出数组的可取值范围就会出现这个错误,这个数组可以是自定义的也可以是系统自带的。1.自定义数组:dim arr1(1 to 5)arr1(10)=555因为arr1数组为1到5,这里却是10,所以就会报下标越界错误。2.系统自带的数组:一个excel工作表表有3张SheetSub 下标越界() MsgBox Sheets(4).NameEnd Sub这里的Sheets(4)显然已经超出了3张Sheet,因此也会报下标越界错误。 总之,有多种情况会引起“下标越界”的报错。 下标越界错误大概有以下的原因和解决方法:
excel VBA下标越界的原因,以及下标越界的解决方法
VBA初学者,常常会遇到下标越界问题。 尽管出现下标越界的原因是多种多样,但终究是因为对象不存在或者超出范围,就会出现下标越界的提示框,如下图所示: Microsoft Visual Basic ~运行时错误'9'~下标越界,错误原因分析: 如果使用数组时,数组的下标超出数组的可取值范围就会出现这个错误,这个数组可以是自定义的也可以是系统自带的。1.自定义数组: dim arr1(1 to 5) arr1(10)=555 因为arr1数组为1到5,这里却是10,所以就会报下标越界错误。2.系统自带的数组: 一个excel工作表表有3张Sheet Sub 下标越界() MsgBox Sheets(4).Name End Sub 这里的Sheets(4)显然已经超出了3张Sheet,因此也会报下标越界错误。 总之,有多种情况会引起“下标越界”的报错。 下标越界错误大概有以下的原因和解决方法: 引用了不存在的数组元素。
excel中VBA运行时错误9下标越界的原因及其解决方法
Excel中vba提示下标超界,说明对象不存在或者数组元素不存在。 举个简单的例子:工作表中没有"1月"这个工作表,却用Sheets("1月");数组定义的是arr(1 to 10),却用Arr(11),都会出现下标越界的提示。 简单的理解:下标越界就是引用超出了所在的范围。 当我们在excel的VBA中输入下面代码,运行,就会出现“运行时错误9下标越界”的提示。代码如下:Sub a() Dim arr() As String arr(1) = "你好" End Sub 其实上面的“运行时错误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