您现在的位置是:首页 > excel函数

excel中VBA运行时错误9下标越界的原因及其解决方法

office办公教程作者:offoce66日期:2022-01-11 06:15:28点击:

Excel中vba提示下标超界,说明对象不存在或者数组元素不存在。i9Yoffice教程网

  举个简单的例子:工作表中没有"1月"这个工作表,却用Sheets("1月");数组定义的是arr(1 to 10),却用Arr(11),都会出现下标越界的提示。i9Yoffice教程网

  简单的理解:下标越界就是引用超出了所在的范围。i9Yoffice教程网

  当我们在excel的VBA中输入下面代码,运行,就会出现“运行时错误9下标越界”的提示。代码如下:i9Yoffice教程网

Sub a()i9Yoffice教程网
Dim arr() As Stringi9Yoffice教程网
arr(1) = "你好"i9Yoffice教程网
End Sub
i9Yoffice教程网

  其实上面的“运行时错误9下标越界”是因为定义的动态数组没有确定维数和尺寸。定义成固定维数和尺寸的,或用Redim界定一下维数和尺寸即可解决此问题。i9Yoffice教程网

运行时错误9下标越界i9Yoffice教程网

  改正后的代码如下:i9Yoffice教程网

Sub a()i9Yoffice教程网
Dim arr() '定义一个动态数组i9Yoffice教程网
Dim i As Integeri9Yoffice教程网
ReDim arr(1 To 3) '定义一个3个元素的数组,并且对数组进行初始化i9Yoffice教程网
arr(1) = 3i9Yoffice教程网
arr(2) = 4i9Yoffice教程网
arr(3) = 5i9Yoffice教程网
'在下面语句重新定义一个10个元素的数组,清除前面的元素,并重新分配新的存储变量i9Yoffice教程网
ReDim arr(1 To 10)i9Yoffice教程网
For i = 1 To 10i9Yoffice教程网
arr(i) = ii9Yoffice教程网
Next ii9Yoffice教程网
End Sub
i9Yoffice教程网

文章评论