-
通常,在引用工作簿或工作表时,最好直接引用名称,有时必须先激活工作簿或工作表,然后才能使用某些属性或方法(但不是全部)! 否则,很容易犯像问题这样的错误。
-
一般来说,下标越界是因为没有找到你要找的东西,比如文件名,比如表的表名,某个数组的列和列都超出了标准,等等。
你没有说问题出在那句话里,所以不好说。
习惯于查找问题的方法是使用断点,找到出错的句子,然后查看那里是否所有变量名称,或者您想要的名称是否真的存在。
我没有用过它,如果它创建了一个新流程,你会遇到很多麻烦。
-
最好把**内容发出去,不然看起来不会有点头晕。
false“
您无需在 Excel 宏中添加这样的工作簿。 只是 mybook = 在线。
-
我看了好几遍,程序没什么大问题,有个小问题,不知道是不是这个:
dim path as string
path =
path 是系统的关键字,在定义变量时,尽量避免使用这些关键字的名称。
此外,还使用了另一个程序 writelocalinfo 和一个自定义函数 writeinfo
更新反馈表单中的信息。
writelocalinfo
set xlsheet =
更新汇总表信息。
flag = writeinfo(xlsheet) 可能是 WriteLocalInfo 程序和 WriteInfo 自定义函数中的错误。
-
原因:对象不存在或数组元素不存在。
1.以简的饥饿为例:工作表中没有人"一月"但是,此工作表使用工作表("一月");数组定义了 arr(1 到 10),但将使用 arr(11),并且下标将越界。
2.更正后的**如下:
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
3.然后单击“运行”,它不会提示。
-
所谓下标越界是找不到的,这里的下标是和工作簿、工作表和单元格有关的,这三者之一会提示下标出界。 工作簿必须打开才能找到工作簿,在这种情况下工作表必须存在,只要语法好,一般没有问题。 当然,工作表最好写成工作表。
-
1.在工作表中设置按钮并将其分配给宏。
2.在VBA设备中输入以下**。 湮灭(此 ** 表示整个区域的单元格,如果它是一个空格,则隐藏空间所在的整个列。
3、操作时折头有问题,下标越界,无法运行。
4.**中的“sheet1”工作表根本不是,因为工作表的标签名称是“chart”,所以**运行时找不到"sheet1"工作表,所以提示下标越界。
5.点击异常提示下方的“调试”按钮,将埋数中的“sheet1”改为“chart”,然后点击按钮运行宏,下表中正常操作,无越界提示。
笔记:
尽管 Excel 提供了大量的用户界面功能,但它仍然保留了第一个电子表格软件 VisicalC 的特征:行和列组成单元格,数据、与数据相关的公式或对其他单元格的绝对引用存储在单元格中。
-
数组元素和集合成员只能在定义的范围内访问。
此错误的原因和解决方法如下:
引用了不存在的数组元素。
下标可能大于或小于下标范围,或者应用程序这一侧的数组可能没有指定的范围。 检查数组的声明以确认其上限和下限。 如果使用的是重新作用域的数组,则应使用 ubound 和 lbound 函数来确定数组访问。
如果将索引指定为变量,则应检查变量名称的拼写。
声明数组时未指定元素数。 例如,以下 ** 将导致此错误: dim myarray() as integer myarray(8) = 234'导致错误。
Visual Basic 不会自动将没有指定范围的数组设置为 0 10。
相反,必须使用 dim 或 redim 来指定数组中的元素数。
引用不存在的集合成员。
尝试使用每个...。next 结构,而不是指定元素下标。
使用下标的简写形式,结果是指定了错误的元素。
例如,在集合上使用 !时算子!系统会自动分配一个密钥。
例如,object!这是一样的。
在这种情况下,如果集合中的键名表示不正确的键,则会发生错误。
若要改进此错误,请在集合对象中使用正确的键名或索引。
-
检查文件是否重命名或路径是否修改,下标越界,因为找不到文件。
-
下标越界,这是VBA中的一个问题,主要是指你输入的命令值已经超出了它的边界值,也就是最大值(最大值和最小值),应该根据具体情况来解决:
例如,VBA 中的二维数组 arr(1
to10,1
to10),这意味着他可以存储 arr(x,y) (注意:x 是一个值。
1 到 10,y 到 10100 个数据(或对象); 如果让 x,y 取其他值,则系统将报告错误,下标将越界。
处理此类跨境问题有两种方法:
1. 粗处理:定义一个相对较大的数组,以确保控件足够。 缺点:占用内存;
2、细粒度:根据实际情况定义阵列的大小,并使用redim及时调整阵列的大小;
上面的例子是针对数组的; 其他的,如excel只包含三张纸,当你出现纸(4)时,你也会报告一个错误,告诉你下标越界了。