EXCEL VBA 宏下标越界问题

发布于 科技 2024-07-16
10个回答
  1. 匿名用户2024-01-30

    通常,在引用工作簿或工作表时,最好直接引用名称,有时必须先激活工作簿或工作表,然后才能使用某些属性或方法(但不是全部)! 否则,很容易犯像问题这样的错误。

  2. 匿名用户2024-01-29

    一般来说,下标越界是因为没有找到你要找的东西,比如文件名,比如表的表名,某个数组的列和列都超出了标准,等等。

    你没有说问题出在那句话里,所以不好说。

    习惯于查找问题的方法是使用断点,找到出错的句子,然后查看那里是否所有变量名称,或者您想要的名称是否真的存在。

    我没有用过它,如果它创建了一个新流程,你会遇到很多麻烦。

  3. 匿名用户2024-01-28

    最好把**内容发出去,不然看起来不会有点头晕。

    false“

    您无需在 Excel 宏中添加这样的工作簿。 只是 mybook = 在线。

  4. 匿名用户2024-01-27

    我看了好几遍,程序没什么大问题,有个小问题,不知道是不是这个:

    dim path as string

    path =

    path 是系统的关键字,在定义变量时,尽量避免使用这些关键字的名称。

    此外,还使用了另一个程序 writelocalinfo 和一个自定义函数 writeinfo

    更新反馈表单中的信息。

    writelocalinfo

    set xlsheet =

    更新汇总表信息。

    flag = writeinfo(xlsheet) 可能是 WriteLocalInfo 程序和 WriteInfo 自定义函数中的错误。

  5. 匿名用户2024-01-26

    原因:对象不存在或数组元素不存在。

    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.然后单击“运行”,它不会提示。

  6. 匿名用户2024-01-25

    所谓下标越界是找不到的,这里的下标是和工作簿、工作表和单元格有关的,这三者之一会提示下标出界。 工作簿必须打开才能找到工作簿,在这种情况下工作表必须存在,只要语法好,一般没有问题。 当然,工作表最好写成工作表。

  7. 匿名用户2024-01-24

    1.在工作表中设置按钮并将其分配给宏。

    2.在VBA设备中输入以下**。 湮灭(此 ** 表示整个区域的单元格,如果它是一个空格,则隐藏空间所在的整个列。

    3、操作时折头有问题,下标越界,无法运行。

    4.**中的“sheet1”工作表根本不是,因为工作表的标签名称是“chart”,所以**运行时找不到"sheet1"工作表,所以提示下标越界。

    5.点击异常提示下方的“调试”按钮,将埋数中的“sheet1”改为“chart”,然后点击按钮运行宏,下表中正常操作,无越界提示。

    笔记:

    尽管 Excel 提供了大量的用户界面功能,但它仍然保留了第一个电子表格软件 VisicalC 的特征:行和列组成单元格,数据、与数据相关的公式或对其他单元格的绝对引用存储在单元格中。

  8. 匿名用户2024-01-23

    数组元素和集合成员只能在定义的范围内访问。

    此错误的原因和解决方法如下:

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

    下标可能大于或小于下标范围,或者应用程序这一侧的数组可能没有指定的范围。 检查数组的声明以确认其上限和下限。 如果使用的是重新作用域的数组,则应使用 ubound 和 lbound 函数来确定数组访问。

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

    声明数组时未指定元素数。 例如,以下 ** 将导致此错误: dim myarray() as integer myarray(8) = 234'导致错误。

    Visual Basic 不会自动将没有指定范围的数组设置为 0 10。

    相反,必须使用 dim 或 redim 来指定数组中的元素数。

    引用不存在的集合成员。

    尝试使用每个...。next 结构,而不是指定元素下标。

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

    例如,在集合上使用 !时算子!系统会自动分配一个密钥。

    例如,object!这是一样的。

    在这种情况下,如果集合中的键名表示不正确的键,则会发生错误。

    若要改进此错误,请在集合对象中使用正确的键名或索引。

  9. 匿名用户2024-01-22

    检查文件是否重命名或路径是否修改,下标越界,因为找不到文件。

  10. 匿名用户2024-01-21

    下标越界,这是VBA中的一个问题,主要是指你输入的命令值已经超出了它的边界值,也就是最大值(最大值和最小值),应该根据具体情况来解决:

    例如,VBA 中的二维数组 arr(1

    to10,1

    to10),这意味着他可以存储 arr(x,y) (注意:x 是一个值。

    1 到 10,y 到 10100 个数据(或对象); 如果让 x,y 取其他值,则系统将报告错误,下标将越界。

    处理此类跨境问题有两种方法:

    1. 粗处理:定义一个相对较大的数组,以确保控件足够。 缺点:占用内存;

    2、细粒度:根据实际情况定义阵列的大小,并使用redim及时调整阵列的大小;

    上面的例子是针对数组的; 其他的,如excel只包含三张纸,当你出现纸(4)时,你也会报告一个错误,告诉你下标越界了。

相关回答
7个回答2024-07-16

退出while的条件由rs条数控制,但记录数可能超过x数组的上限,导致j=j+1越界,所以j=j+1应该控制: >>>More

5个回答2024-07-16

在Excel中,VBA指示下标越界,指示对象不存在或数组元素不存在。 >>>More

16个回答2024-07-16

在VB中,数组第一个元素的下标默认值为0,即c(8)最后一个元素的下标为7,没有8,i=8当然下标越界了! >>>More

16个回答2024-07-16

程序:<>

测试数据:<> >>>More

11个回答2024-07-16

在工具选项“重新计算”中,有一个自动重新计算选项,单击它,它将自动刷新。 >>>More