📜  VBA阵列

📅  最后修改于: 2021-01-11 14:02:39             🧑  作者: Mango

VBA阵列

该数组是一个存储位置,能够存储多个值。所有值都必须具有相同的数据类型。

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

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

数组类型

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

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

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

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

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

第3步:单击“命令”按钮,您将获得输出,如下面的屏幕快照所示。

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

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

步骤1:这次,我们将从表中读取名称,例如: VBA阵列

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

第3步:单击“命令”按钮,您将获得输出,如下面的屏幕快照所示。

ReDim声明

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

ReDim的语法

ReDim [Preserve] varname (subscripts) [As type], [varname (subscripts) [As type]].

ReDim语句的语法包括以下部分,例如:

Part Description
Preserve (Optional) It used to preserve the data in an existing array when you change the size of the last dimension.
varname (Required) It is the name of the variable.
Subscripts (Required) It is the dimensions of an array variable. It may be declared up to 60 multiple dimensions. The subscripts argument uses the following syntax:
[lowerTo] upper, [[lowerTo] upper], .......

The lower bound of an array is controlled by an option base statement when no explicitly stated in lower. If no option base statement is present, then the lower bound is zero.

Type (Optional) It is the data type of the variable. It may be Byte, Boolean, Long, Integer, Single, Double, Currency, Date, String, Object, Variant, a user-defined or an object type.

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

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

如果数组包含在variant中,则可以通过使用As类型来更改元素的类型。如果您使用preserve关键字,则无权更改数据类型。

阵列尺寸

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

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

Dim agecount(100)作为UInteger

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

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

例如,每个班级有几个学生。它要求班级数和每个班级的学生人数。

昏暗的学生人数(50,5)以字节为单位

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

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

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

昏暗的温度(29、30、32)单

阵列的优点

数组有一些优点,例如:

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

VBA阵列范例

让我们从一个简单的应用程序开始。此应用程序占用一个Excel表格,其中包含来自数组变量的数据。在此示例中,我们需要执行以下操作:

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

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

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

  • 打开Microsoft Excel。
  • 并以.xlsm扩展名保存新工作簿。

步骤2:在表格中添加一个Command按钮。

  • 将name属性设置为cmdLoad Beverages
  • 设置标题属性以加载饮料。
  • 现在,图形用户界面如下所示。

步骤3:保存excel文件。

  • 单击另存为按钮。
  • 然后选择Excel Macro-Enabled Workbook(* .xlsm)作为文件类型,如下面的屏幕快照所示。

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

  • 单击按钮,然后选择“逐步进入”选项。
  • 然后将以下代码添加到cmdLoad Beverages的click事件中。

测试应用

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

步骤2:然后关闭“设计模式”按钮。

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

步骤4:点击“加载饮料”按钮。

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