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

能否使用VBA的Array()函数创建多维数组?

VBA中使用Array()函数创建多维数组的可能性

VBA的Array()函数无法直接创建真正的多维数组,你的理解是正确的。

关于Array()函数的实际行为

  • 你尝试的第一种写法确实无效:

    Dim MyArr() As Variant
    MyArr = Array(("1a","1b"),("2a","2b")) ' 此写法无效
    

    Array()函数仅接受一系列独立元素作为参数,无法识别这种直接的多维元素分组语法。

  • 第二种写法生成的是嵌套数组(Jagged Array),而非真正的多维数组:

    MyArr = Array(Array("1a","1b"),Array("2a","2b")) ' 此写法有效,但生成嵌套数组
    

    嵌套数组是“数组的数组”,每个子数组可独立调整长度;而真正的多维数组(如Dim arr(9,1))是连续的内存结构,各维度长度固定,二者在内存存储和访问逻辑上有本质区别。

VBA创建多维数组的常规方式

如果需要真正的多维数组,只能通过显式声明维度后逐个赋值:

Dim MyArr(9,1) As String
MyArr(0,0) = "Hello"
MyArr(0,1) = "world!"
' 后续元素赋值

也可以先声明动态数组,再用ReDim指定维度后赋值:

Dim MyArr() As String
ReDim MyArr(1,1) ' 2行2列的二维数组
MyArr(0,0) = "1a"
MyArr(0,1) = "1b"
MyArr(1,0) = "2a"
MyArr(1,1) = "2b"

与其他语言的对比

像.Net、Java这类语言支持的集合初始化式多维数组语法(如Dim MyArr() As String = {{"1a","1b"},{"2a","2b"}}),VBA确实没有提供,这是语言本身的语法限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:24:59