VBA 中存储和管理数据的结构 - 数组(Array)

每一种开发编程语言,都有设计其存储和管理数据的结构,根据语言的特色和所面对的问题,整体功能相近但实现细节和语法规则有不同,本章简单介绍Excel VBA 中最常见的数据结构 数组以及数组的启用方式。

一、数组优势总结

序号优势
A -基于内存运行速度远高于其他方案
B -数组可以映射业务中多维数据,便于将逻辑和业务捆绑
C -填充数组的内容方案多样,可以应对多种现实场景,构建数据方便
D -基于index 的索引方式带来操作的便捷性
E -在二维数组中可以轻松的将数组数据映射到Sheet 页中,减少交互和逻辑,可以直接一次性写出至Sheet中

二、数组数据的初始化

1. 直接定义赋值

代码如下:在处理工作表Head 命名的时候,很常用。

Sub method1()

Rem 直接定义数组,方式如下
arr_data = Array("红楼梦", "西游记", "水浒传", "三国演义")

Rem 将数组数据直接写入工作表 Sheet1 中
Sheets("Sheet1").Range("A1:D1") = arr_data

End Sub

代码执行效果展示:

方法1

2. 通过VBA自有功能,将一个excel 区域直接赋值给VBA 的变量

代码如下:

Sub method2()

Rem 将工作表区域直接赋值给变量,此时arr_data 就为一个数组,如下
arr_data = Sheets("Sheet1").Range("B3:C5")

Rem 将数组数据直接写入工作表 Sheet1 中
Sheets("Sheet1").Range("C10:D12") = arr_data

End Sub

代码执行效果展示:

直接赋值一个区域

3. 利用 Split 函数拆分功能实现

代码如下:

Sub method3()

Rem 利用 Split 函数功能拆分字符串等方式可以生成数组,在实际逻辑中也比较常用
Dim source_str  As String
Let source_str = "2025-05-14"

arr_data = Split(source_str, "-")

Rem 将数组数据直接写入工作表 Sheet1 中
Sheets("Sheet1").Range("B2:D2") = arr_data

End Sub

代码执行效果展示:

split 函数

4. 自定义函数(一维,二维,三维等多维数组),并自行代码逻辑填充赋值

代码如下:

Sub method4()

Rem 演示自定义二维数组 arr,即为 3行2列数据
Dim arr(1 To 3, 1 To 2)

arr(1, 1) = 1
arr(1, 2) = "蜀国"

arr(2, 1) = 2
arr(2, 2) = "吴国"

arr(3, 1) = 3
arr(3, 2) = "魏国"

Rem 将数组数据直接写入工作表 Sheet1 中
Sheets("Sheet1").Range("B1:C3") = arr

End Sub

代码执行效果展示:

手动的进行输入

总结

几种常见的初始化数组并填充数据的方法,数组是任何语言学习中十分重要的数据结构,也是VBA绕不开的一个话题

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐