VBA声明数组|如何在VBA中声明数组?

Excel VBA声明数组

在VBA中声明数组 与变量非常相似,它是通过相同的dim语句或静态public或private语句完成的,在声明数组和声明变量时的唯一区别是,在声明数组时,我们必须提供一个数组大小,该大小为数组的上限和数组的下限。

在VBA代码中,我们可以声明一个可以容纳变量数量的单个变量数组,而不是声明单个变量。这可以帮助减少代码中的行数。

数组是一种可以容纳多个值的变量,与常规变量一次只能容纳一个值的变量不同。该数组是在VBA中声明变量的高级版本。例如,假设您想给变量分配5个学生姓名,并且在通常情况下,我们为五个五个变量声明了五个变量,而这五个变量是我们逐个分配单个学生姓名的,下面是相同的示例代码。

代码:

 Sub Array_Example()Dim Student1作为字符串Dim Student2作为String Dim Student3作为String Dim Student4作为String Dim Student5作为String End Sub 

与其声明多个变量,不如声明一个可以容纳所有学生姓名的变量数组的想法。

是的,这可以通过在VBA中声明数组来实现。

例子

您可以在此处下载此VBA声明数组Excel模板– VBA声明数组Excel模板

范例#1

要声明,我们不需要执行任何特殊的VBA编码,而是需要遵循简单的概念。

首先,启动子过程。

代码:

 子Array_Example()结束子 

现在,像往常一样,将变量声明为字符串。

代码:

 Sub Array_Example()昏暗的学生作为字符串结尾Sub 

现在,一旦声明了变量,请确保应保存多少个值。在这种情况下,我想存储五个学生的姓名,所以现在我们需要确定数组大小,即1到5。将相同的内容提供给方括号中的变量。

代码:

 Sub Array_Example()昏暗的学生(1到5)作为字符串结尾Sub 

现在,对于该单个变量,我们可以存储5个学生姓名。

代码:

 Sub Array_Example()昏暗的Student(1至5)作为字符串Student(1)=“ John” Student(2)=“ Peter” Student(3)=“ Ricky” Student(4)=“ Michael” Student(5)= “安德森”结束子 

通过将变量声明为数组,看看我们减少了多少行。这是一种方法,我们仍然可以通过将其包含在VBA的循环中来缩短此代码。

现在举个例子,我在工作表单元格中具有相同的五个名称。3

现在,我想在VBA的消息框中显示这些数字,好吧,让我们为循环声明另一个变量作为Integer数据类型。

代码:

 Sub Array_Example()Dim Student(1 to 5)As String Dim K As Integer End Sub 

和往常一样,我将数组变量保留为1到5的大小。

现在,在VBA中打开FOR NEXT循环,由于我们有五个名称,请输入限制(从1到5)。

代码:

 Sub Array_Example()Dim Student(1 to 5)As String Dim K As Integer For K = 1 to 5 Next K End Sub 

要将值分配给数组变量,我们不需要遵循前面显示数字(s)的Student(1),Student(2)的方式,即可为数字位置提供循环变量“ k”。

代码:

 Sub Array_Example()Dim Student(1 to 5)As String Dim K As Integer For K = 1 to 5 Student(K)= Next K End Sub 

对于此数组变量,我们需要工作表中的值,因此使用CELLS属性从工作表中获取值。

代码:

 Sub Array_Example()Dim Student(1 to 5)As String Dim K As Integer For K = 1 to 5 Student(K)= Cells(K,1).Value Next K End Sub 

现在通过消息框显示数组变量的值。

代码:

 Sub Array_Example()Dim Student(1 to 5)As String Dim K As Integer For K = 1 to 5 Student(K)= Cells(K,1).Value MsgBox Student(K)Next K End Sub 

现在运行代码,在消息框中,我们将看到名字。再次按确定以查看第二个名称。像这样按OK,我们可以看到所有五个名称。

Example#2 –二维数组

我们已经在上面看到了数组的工作原理,现在我们将看到维数组。二维数组集中在行和列上。

在上面的示例中,我们将数组的大小确定为1到5,这可以集中在行或列上。

通过使用二维数组,我们可以专注于行和列。为此,我们需要封闭两个循环。

首先,定义变量,然后确定数组的大小。

代码:

 Sub Two_Array_Example()昏暗的学生作为字符串结尾Sub 

首先,确定行大小,然后确定列长。

代码:

 Sub Two_Array_Example()Dim Student(1 to 5,1 to 3)As String End Sub 

为此,我为学生姓名,分数和成绩状态构建了数据。

现在回到编码窗口。

为一个循环声明另外两个变量。

代码:

 Sub Two_Array_Example()Dim Student(1 to 5,1 to 3)As String Dim K作为Integer,J作为Integer End Sub 

现在,如下所示封闭循环。

代码:

 Sub Two_Array_Example()Dim Student(1 to 5,1 to 3)As String Dim k as Integer,J As Integer For k = 1 to 5 For J = 1 to 3 Worksheets(“ Student List”)。选择Student(k, J)=单元格(k,J)。值工作表(“ Copy Sheet”)。选择单元格(k,J)。值=学生(k,J)下一页J下一页k结束子级 

这样做是将复制“学生列表”表中的数据并粘贴到“复制表”中。

要记住的事情

  • 数组是一个广阔的概念,这只是一个介绍性的部分。
  • 您需要高级编码技能才能了解数组声明。
  • 您在代码中使用数组的次数越多,您就越会习惯它。