Excel中的VBA数组|如何在VBA中使用数组功能?

在VBA中,数组用于一起定义对象组,VBA中有九种不同的数组函数,它们是ARRAY,ERASE,FILTER,ISARRAY,JOIN,LBOUND,REDIM,SPLIT和UBOUND,所有这些都是数组的内置函数在VBA中,数组函数为我们提供了给定参数的值。

Excel VBA数组功能

数组函数是单个变量中的值的集合。我们可以在vba,函数和属性中为子例程提供数组。 VBA数组是在变量中存储多个值的常用技术之一。

Excel VBA数组函数的示例

无需声明许多变量并存储值,我们可以使用Excel VBA数组将值存储在单个变量本身中。例如,看下面的例子

您可以在此处下载此VBA Array Excel模板– VBA Array Excel模板

代码:

 Sub Array_Ex()Dim x以整数Dim y As整数x = 1 y = 2 Range(“ A1”)。Value = x Range(“ A2”)。Value = y End Sub 

在上面的示例中,我声明了两个名为x&y的变量。 X的值为1,Y的值为2。

现在,查看带有单个变量的Excel VBA数组函数示例。

代码:

 Sub Array_Ex()Dim x(1至2)作为整数Range(“ A1”)。Value = x(1)Range(“ A2”)。Value = x(2)End Sub 

现在,如果您运行此VBA代码,我们将在单元格A1和A2中具有值。

数组变量返回的结果为零。这是因为我们刚刚将变量声明为两个,但尚未为这些变量分配任何值。因此,我们需要为这些变量分配值。

代码:

 Sub Array_Ex()Dim x(1至2)作为整数x(1)= 10 x(2)= 20 Range(“ A1”)。Value = x(1)Range(“ A2”)。Value = x(2 )结束子 

现在运行代码以获取结果。

在将数组变量的值输入单元格之前,我们需要将值分配给已声明的数组变量,就像我们分配变量x(1)= 10&x(2)= 20一样。

Example#1 –使用静态数组插入序列号

让我们看一个使用静态数组插入序列号的示例。这很像上一个。

代码:

 Sub StaticArray_Ex()Dim x(1到5)作为整数x(1)= 10 x(2)= 20 x(3)= 30 x(4)= 40 x(5)= 50范围(“ A1”)。值= x(1)范围(“ A2”)。值= x(2)范围(“ A3”)。值= x(3)范围(“ A4”)。值= x(4)范围(“ A5” )。值= x(5)结束子 

现在运行此代码以插入序列号。

Example#2 –使用动态数组插入序列号

现在我们将看到第二种类型的数组,即动态数组

代码:

 Sub DynamicArray_Ex()Dim x()作为整数ReDim x(5)x(1)= 10 x(2)= 20 x(3)= 30 x(4)= 40 x(5)= 50范围(“ A1” ).Value = x(1)Range(“ A2”)。Value = x(2)Range(“ A3”)。Value = x(3)Range(“ A4”)。Value = x(4)Range(“ A5“)。值= x(5)结束子 

现在运行此代码以获取序列号的结果。我们得到与上一个相同的结果。

如果您注意到我们在声明变量时没有提供数组的长度,而是使用VBA Redim函数分配了VBA数组的最后一个值。 Redim保留要传递的数组的最后一个值。

Example#3 –使用数组创建函数插入月份名称

我们已经看到了如何在VBA中使用数组。现在,我们将看到如何使用数组在Excel中创建VBA函数。该功能不过是VBA中用户定义的功能。除了使用内置函数外,Excel VBA还允许我们创建自己的函数。

代码:

 函数List_Of_Months()List_Of_Months = Array(“ Jan”,“ Feb”,“ Mar”,“ Apr”,“ May”,“ Jun”,“ Jul”,“ Aug”,“ Sep”,“ Oct”,“ Nov” “,” Dec“)结束函数 

下面的代码将创建一个可以在我们的Excel工作表中插入月份的函数。

将以下代码复制并粘贴到您的模块中。

现在保存此代码并关闭VBA编辑器。关闭VBA编辑器后,转到工作表并键入我们刚刚创建的公式,您应该看到名为 List_Of_Months 在您的工作表中。

打开公式,然后按Enter。我们将获得第一个月的名字,即Jan

如果您再插入一次公式,那么下个月的2月我们将只获得Jan,而不是2月。因此,首先在一行中选择12列。

现在在D1单元格中打开公式。

由于我们已经使用数组创建了公式,因此需要仅将公式作为数组公式关闭。所以等一下 Ctrl + Shift + Enter。 我们将拥有所有12个月的姓名。

要记住的事情

  • 还有两种可用的数组类型,即二维数组和多维数组。
  • 数组从0开始,而不是从1开始。零表示第一行和第一列。
  • 数组是一个大主题,您需要了解它才能前进到下一个级别。
  • 数组变量将在每次前进到下一个级别时保存大量数据。
  • Redim用于以动态数组类型存储数组的最后长度。