打开任何excel都提示“运行时错误9,下标越界”

2021-03-18 14:00:01 字数 3131 阅读 1535

1楼:阳光上的桥

中毒了,这些**需要删除,技术不好可以请杀毒软件帮忙,技术好可以自己删除文件。

excel 为什么 运行时错误9 下标越界

2楼:很多很多

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中的数组越界

引用了不存在的数组元素。

下标可能比下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 ubound 和 lbound 函数来决定数组访问。

如果索引指定为变量,应检查变量名的拼写。

声明数组时没有指定元素的数目。例如,下列的**就会导致此错误:

dim myarray() as integer

myarray(8) = 234 ' 导致错误 9。

visual basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 dim 或 redim 来指定数组中元素的数目。

引用了不存在的集合成员。

试着使用 for each...next 结构代替指定元素下标。

使用速写形式的下标,结果指定了错误的元素。

3楼:尧宵雷经义

vb在使用数组前必须指定数组的大小,一种办法是在定义时确定大小,如:dim

inputdata(10)

assingle

另一种是动态定义,声明不用修改,如在出错语句前加一句:

redim

inputdata(10)

assingle

4楼:余余

c:\users\腾\desktop\test.xlsx 这个文件名是否修改过或位置变动了,不在所指向的文件夹下?

5楼:阳光上的桥

是不存在msgsheetname这个名字的工作表,如果这个msgsheetname的值是整数,excel是不是以名称、而是序号去找表表,你先显示一下变量的值就明白了,例如:

msgbox msgsheetname

6楼:匿名用户

出错时,点调试,打开本地窗口,看下是哪个表出错。

比如,出错时显示i为5,那么检查test5月表名中是否包含空格及其他会导致错误的情况。

或者,根本就没有test5月这张表。

**没看出问题

7楼:匿名用户

excel提示下标越界是vba程序运行的一个错误提示,原因有以下几个:

1、引用了不存在的数组元素:下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。

2、声明数组时没有指定元素的数目:引用了不存在的集合成员。

3、使用速写形式的下标,结果指定了错误的元素。

4、引用或操作的工作薄、工作表不存在。

8楼:百度网友

你没有附件上来。。。没法试。

下面三条语句有相同的功能,使sheet1成为当前活动表

sheets("sheet1").select '错误,此种方法在excel2007中出错,但一些资料显示可以这样使用**名sheet1来引用

sheets("abc").select '正确,此方法中的abc是工作表标签名称,由于此名称可能被修改,所以在vba宏程序中不赞成使用

sheets(1).select '正确,此方法中的数字序号是在excel工作簿下实际看到的工作表排列顺序序号,在宏程序中不赞成使用

sheets(sheet1.name).select '正确,此方法使用**名sheet1的name属性来引用,适合在vba宏程序中使用

希望对你有所帮助~

excel 提示错误9,下标越界,怎样解决

9楼:3047156926直召

在你的vba**中引用的下标不存在了,比如你原来有sheets(5)或者sheets("**5"),这**5不存在了或者名字改了;还有其他有引用下标的函数,下标出错等等...

10楼:姓王的

你这段**写得不简洁,是录制宏改的吧。

workbooks.open (thisworkbook.path & "/" & i & ".xls")

这句应该有问题,“/”反向了。但不应该是“下标越界”的问题,具体哪句出现的问题呢?

sheets("w").select——这句如果循环打开的某个文件没有工作表“w”,会出现下标越界

打开带有宏的excel,提示【运行时错误 '9' 下标越界】。怎么弄?

11楼:匿名用户

要把宏传上来才能分析出错的原因。

12楼:

说明你想操作的对象不存在,请检查你想执行的操作的对象是否存在。