关于vba的“不能给数组赋值”错误(转载)

发布时间 2023-11-07 00:16:06作者: jes

整理自https://zhidao.baidu.com/question/418213674.html的一个好答案。

 

首先,要了解“不能给数组赋值”这个错误产生的根源,是由于程序要改变固定数组的大小引起的,比较常见的是有些函数、方法的返回值是一个数组,它们会自动设置用于接受数据的数组的大小,如果用固定数组去接收就会产生这个错误。
所以解决方案就是,Array 函数返回一个包含数组的 Variant,所以你定义函数K的时候不能指定大小,要写成k As Variant或者k() As Variant。

另外,149005501 表述有误,VB不限制数组下标从哪里开始。使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定,在form模块开头加入Option Base 1循环里的代码就不用改,不加的话要写成k(3 * (i - 1) + j-1) 。