VBA 数组

17 Mar 2025 | 5 分钟阅读

数组是一个存储多个值的内存位置。所有值都必须是相同的数据类型。

如果要将相同数据类型的列表存储在单个变量中,可以使用数组进行存储。

通过使用数组,您可以通过相同的名称提及相关值。您可以使用下标或索引将它们区分开来。单个值称为数组的元素。它们从索引 0 开始到最高索引值是连续的。

数组的类型

VBA 中有两种类型的数组,例如

1. 静态数组: 静态显示具有固定、预先确定的元素数量,可以存储。您无法更改静态数组的数据类型大小。当您使用已知的实体(例如性别、一周中的天数等)时,这些非常有用。

例如: 要创建一个静态数组,请执行以下代码,例如

步骤 1: 首先在您的工作表上插入一个 Command 按钮。

步骤 2: 然后,您将获得一个代码窗口,并添加以下代码。

VBA Arrays

步骤 3: 单击 Command 按钮,您将获得如下所示的输出。

VBA Arrays

2. 动态数组: 动态数组没有固定的、预先确定的元素数量,可以存储。当您使用无法预先确定数量的实体时,这些非常有用。

例如,要创建一个动态数组,请执行以下步骤,例如

步骤 1: 这一次,我们将从工作表读取名称,例如:> VBA Arrays

步骤 2: 单击放置在工作表上的 Command 按钮,并添加以下代码行。

VBA Arrays

步骤 3: 单击 Command 按钮,您将获得如下所示的输出。

VBA Arrays

ReDim 语句

ReDim 语句用于声明动态数组变量,也用于分配或重新分配存储空间。

ReDim 的语法

ReDim 语句语法具有以下部分,例如

部分描述
保存(可选) 用于在更改最后一个维度的大小时保留现有数组中的数据。
varname(必需) 它是变量的名称。
下标(必需) 它是数组变量的维度。可以声明多达 60 个多维。下标参数使用以下语法
[lowerTo] upper, [[lowerTo] upper], .......
	
当没有在 lower 中明确声明时,数组的下限由 option base 语句控制。如果不存在 option base 语句,则下限为零。
类型(可选) 它是变量的数据类型。它可以是 ByteBooleanLongIntegerSingleDoubleCurrencyDateStringObjectVariant、用户定义类型或 object 类型。

ReDim 语句用于调整动态数组的大小,该动态数组已经通过使用带有空括号的 privatepublicDim 注释声明。

您可以经常使用 ReDim 语句来更改数组中的元素数量和维度。您不能声明一个数据类型的数组。

如果数组包含在 variant 中,则可以使用 As 类型更改元素的类型。如果您使用 preserve 关键字,则不允许更改数据类型。

数组维度

1. 一维: 数组在一维中使用一个索引。

例如,每个年龄的人数。唯一的要求是指定一个年龄。该元素保存计数。

Dim agecount (100) As UInteger

上面的示例声明了一个一维的年龄计数数组,从 0 到 100。

2. 二维: 数组在二维中使用两个索引。

例如,每个班级的学生人数。它需要班级数量和每个班级的学生数量。

Dim studentscounts (50, 5) As Byte

上面的例子声明了一个二维数组,学生计数 1 到 50 和班级 1 到 5。

3. 多维: 数组在多维数组中使用两个以上的索引。

例如,白天(29、30、32)的温度。

Dim temperature (29, 30, 32) As single

数组优点

数组有一些优点,例如

  • 它将逻辑上相关的数据组合在一起。
    例如,如果要存储学生列表,则可以使用单个数组变量。它为学生类别提供了单独的位置,例如高中、初中、小学等。
  • 数组使编写合理的代码变得容易。对于相同的逻辑上相关的数据,它允许定义单个变量,而不是定义多个变量。
  • 数组提供了更好的性能。定义数组后,对数据进行排序、检索和修改会更快。

VBA 数组示例

让我们从一个简单的应用程序开始。此应用程序使用来自数组变量的数据填充 excel 表格。在此示例中,我们要求以下内容,

  • 在 Microsoft Excel 中创建一个新的工作簿,并将其另存为启用宏的 excel 工作簿 (*.xlsm)
  • 在工作簿中添加一个命令按钮。
  • 设置命令按钮的名称和标题属性。
  • 然后编写填充 excel 表格的代码。

让我们执行以下步骤,例如

步骤 1: 创建一个新工作簿。

  1. 打开 Microsoft excel。
  2. 并使用 .xlsm 扩展名保存新的工作簿。

步骤 2: 将一个命令按钮添加到工作表中。

VBA Arrays
  1. 将名称属性设置为 cmdLoad Beverages
  2. 将标题属性设置为加载饮料。
  3. 现在图形用户界面如下所示。
VBA Arrays

步骤 3: 保存 excel 文件。

  1. 单击 另存为 按钮。
  2. 并选择 Excel 启用宏的工作簿 (*.xlsm) 作为文件类型,如下面的屏幕截图所示。
VBA Arrays

步骤 4: 在代码窗口上编写代码。

  1. 单击 按钮并选择“Step Into”选项。
  2. 然后将以下代码添加到 cmdLoad Beverages 的单击事件中。
VBA Arrays

测试应用程序

步骤 1: 选择 开发人员 选项卡。

步骤 2: 并关闭 设计模式 按钮。

VBA Arrays

步骤 3: 指示器是,它将从绿色的背景变为白色的背景,如下面的屏幕截图所示。

VBA Arrays

步骤 4: 单击 加载饮料 按钮。

步骤 5: 它显示代码的输出,如下面的屏幕截图所示。

VBA Arrays