You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连续定义二维数组时出现Error 2015的原因及解决方法

Error 2015 错误原因

你遇到的Error 2015本质是#VALUE!错误,触发原因是VBA中使用[{...}]语法定义数组时,要求数组必须是矩形结构——所有行的元素数量必须完全一致。

看你的代码:

  • iIoTAryOnX的每一行都有5个元素,符合矩形要求,所以运行正常;
  • iIoTAryOnY的各行元素数量分别是2、5、3、3、2,行与行的长度不一致,违反了[{...}]的语法规则,因此触发错误。
解决方法

根据你的实际需求,有两种可行方案:

方案1:创建锯齿状数组(数组嵌套数组)

如果不需要矩形结构,而是需要每行长度可变的数组,可以用Array()函数嵌套定义:

Dim iIoTAryOnY As Variant
iIoTAryOnY = Array( _
    Array(11, 13), _
    Array(1, 6, 9, 10, 12), _
    Array(2, 8, 14), _
    Array(3, 5, 7), _
    Array(4, 15) _
)
  • 注意:这种方式创建的是锯齿状数组,访问元素时需要用双层索引,比如取第二行第三个元素:iIoTAryOnY(1)(2)(默认是0-based索引,若代码开头有Option Base 1则是1-based)。

方案2:填充为矩形数组

如果必须使用矩形二维数组,需要给元素数量少的行填充占位值(比如Empty或0),让所有行的元素数一致:

Dim iIoTAryOnY As Variant
iIoTAryOnY = [{11,13,Empty,Empty,Empty; 1,6,9,10,12; 2,8,14,Empty,Empty; 3,5,7,Empty,Empty;4,15,Empty,Empty,Empty}]
  • 这样定义后,数组是标准的二维矩形结构,访问方式和iIoTAryOnX一致,比如iIoTAryOnY(1,1)(1-based索引)。

内容的提问来源于stack exchange,提问作者AITD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:38:17