Excel 如何解决下标越界问题

如题所述

1、在SHEET表内设置好按钮,并指定到宏。

2、在VBA编辑器内输入如下的代码。(此代码的含义为遍布区域内的单元格,如果为空格,则隐藏空格所在的整列。

3、在运行过程中出现了问题,下标越界,无法运行。

4、在代码中的“SHEET1”工作表根本没有,因为SHEET表的标签名称为“图表”,因此代码运行时找不到"SHEET1"工作表,所以提示下标越界。

5、点击异常提示下的“调试”按钮,将代码中“SHEET1”改为“图表”后再点按钮,运行宏,代码正常运行,无下表越界提示。

注意事项:

Excel虽然提供了大量的用户界面特性,但它仍然保留了第一款电子制表软件VisiCalc的特性:行、列组成单元格,数据、与数据相关的公式或者对其他单元格的绝对引用保存在单元格中。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-08
只能在定义的范围内访问数组元素和集合成员。
此错误有以下的原因和解决方法:
引用了不存在的数组元素.
下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。
声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误: Dim MyArray() As Integer MyArray(8) = 234 ' 导致错误 。
Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。
相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。
引用了不存在的集合成员。
试着使用 For Each...Next 结构代替指定元素下标。
使用速写形式的下标,结果指定了错误的元素。
例如,当在集合上使用 ! 运算子时,! 自动指定了一个键。
例如 object!keyname.value 和 object.item(keyname).value 是一样的。
在此例中,集合中如果 keyname 表示一个错误键,错误就会产生。
若要改进此错误,在集合对象中使用正确的键名称或索引。本回答被网友采纳
第2个回答  2018-10-08
检查文件是否重命名或者路径是否修改,下标越界是因为找不到文件所导致的
第3个回答  2019-05-22
下标越界这个是VBA里面的问题,主要指你输入的命令值已经超过了它的边界值即最值(最大最小)这个要根据具体情况具体解决:
举个例子:VBA中个二维数组,arr(1
to
10,1
to
10),代表他可以储存arr(x,y)
(注:
x取值
1到10,y取值1到10.)100个数据(或者对象);如果你让x,y取了其他值,那么系统就报错,下标越界
处理这类越界的问题有两种方法:
1、粗处理:定义一个比较大的数组,保证控件足够。弊端:占内存;
2、细处理:根据实际情况定义数组大小,用redim
及时调整数组的大小;
以上例子是针对数组的举例;其他如excel只包含三个sheet,你代码出现sheets(4)也会报错,告诉你下标越界。
相似回答