Excel VBA 数组:类型及使用方法(附示例)

什么是 VBA 数组?
数组被定义为能够存储多个值的内存位置。所有值必须属于同一数据类型。假设您想将您最喜欢的饮料列表存储在一个变量中,您可以使用 VBA 数组来实现这一点。
通过使用数组,您可以用相同的名称引用相关值。您可以使用索引或下标来区分它们。各个值被称为 Excel VBA 数组的元素。它们从索引 0 到最高索引值是连续的。
本教程假设你正在使用 Microsoft Excel 版本 2013。这些知识仍然适用于其他版本的 Microsoft 同样适用于 Excel。
数组的优点是什么?
在编写数组代码之前,了解数组的价值所在很有帮助。以下是 VBA 数组函数的一些优点。
- 将逻辑相关的数据分组在一起——假设您想要存储一份学生名单。您可以使用一个数组变量,该变量为学生类别(例如幼儿园、小学、中学、高中等)设置单独的位置。
- 数组使编写可维护的代码变得容易。对于逻辑上相同的相关数据,它允许您定义单个变量,而不是定义多个变量。
- 更好的性能——一旦定义了数组,就可以更快地检索、排序和修改数据。
VBA 中的数组类型
VBA 支持两种类型的数组,即;
- 静止 – 这些类型的数组具有固定的预定可存储元素数量。无法更改静态数组的数据类型的大小。当您想要处理已知实体(例如一周中的天数、性别等)时,它们很有用。例如:Dim ArrayMonth(12)作为字符串
- 动态 – 这些类型的数组没有固定的预定可存储元素数量。当处理无法预定数量的实体时,它们很有用。例如:Dim ArrayMonth() 作为变量
一旦确定了哪种类型适合你的数据,下一步就是每种类型的声明语法。
声明数组的语法
静态数组
声明的语法 静态的 数组如下:
Dim arrayName (n) as datatype
这里,
| Code | 操作 |
|---|---|
| Dim 数组名称 (n) 数据类型 |
|
动态数组
声明的语法 动态 数组如下:
Dim arrayName() as datatype ReDim arrayName(4)
这里,
| Code | 操作 |
|---|---|
| Dim 数组名称 () 数据类型 |
|
| ReDim 数组名称(4) |
|
数组维度
数组可以是一维、二维或多维的。
- 一维:在这个维度中,数组仅使用一个索引。例如,每个年龄段的人数。
- 二维:在这个维度中,数组使用两个索引。例如,每个班级的学生人数。它需要班级数量和每个班级的学生人数
- 多维度:在此维度中,数组使用两个以上的索引。例如,白天的温度。(30, 40, 20)。
如何在 Excel VBA 中使用数组
理论知识讲解完毕,我们就可以在实际工作簿中使用数组了。我们将创建一个简单的应用程序。该应用程序会将数组变量中的数据填充到 Excel 工作表中。在这个 VBA 数组示例中,我们将执行以下操作。
- 创建一个新的 Microsoft Excel 工作簿并将其保存为 Excel 启用宏的工作簿 (*.xlsm)
- 向工作簿添加命令按钮
- 设置命令按钮的名称和标题属性
- 编写 VBA 程序来填充 Excel 工作表
让我们一步一步地做这个练习,
步骤 1 – 创建新工作簿
- 可选 Microsoft Excel
- 将新工作簿保存为 VBA Arrays.xlsm
步骤 2 – 添加命令按钮
注意: 本节假设您熟悉在 Excel 中创建界面的过程。如果您不熟悉,请阅读教程 VBA Excel 表单控件和 ActiveX 控件.它将向您展示如何创建界面
- 向工作表添加命令按钮
- 将 name 属性设置为 cmdLoadBeverages
- 将 caption 属性设置为 Load Beverages
你的 GUI 现在应该如下所示
步骤 3 – 保存文件
- 点击另存为按钮
- 选择 Excel 启用宏的工作簿 (*.xlsm),如下图所示
步骤 4 – 编写代码
我们现在将为我们的应用程序编写代码
- 右键单击“加载饮料”按钮并选择查看代码
- 在cmdLoadBeverages的点击事件中添加以下代码
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(1) = "Pepsi" Drinks(2) = "Coke" Drinks(3) = "Fanta" Drinks(4) = "Juice" Sheet1.Cells(1, 1).Value = "My Favorite Beverages" Sheet1.Cells(2, 1).Value = Drinks(1) Sheet1.Cells(3, 1).Value = Drinks(2) Sheet1.Cells(4, 1).Value = Drinks(3) Sheet1.Cells(5, 1).Value = Drinks(4) End Sub
这里,
| Code | 操作 |
|---|---|
| 点心饮料(1 至 4)作为字符串 |
|
| 饮料(1)=“百事可乐” |
|
| Sheet1.Cells(1, 1).Value = “我最喜欢的饮料” |
|
| Sheet1.单元格(2,1).值 = 饮料(1) |
|
测试我们的应用
代码编写完毕后,最后一步是运行按钮并确认数组已填充整个工作表。选择“开发工具”选项卡,确保“设计模式”按钮处于“关闭”状态。其标志是,该按钮的背景应为白色,而不是彩色(绿色)背景。(参见下图)
点击加载饮料按钮
您将获得以下结果
下载包含上述代码的 Excel





