Excel VBA数组:如何在Excel中使用数组
Excel VBA (Visual Basic for Applications)是电子表格与编程结合的地方。尽管Excel VBA不像一般的编程语言那么复杂或强大,但是除了那些非常有决心的学习者之外,其他所有人都很难掌握它。与此同时,VBA的应用和能力是巨大的。如果你想真正掌握Excel,学习VBA是必须的。这高级Excel课程帮助你开始。
在本教程中,我们将更多地了解Excel最强大的功能之一,VBA数组,以及如何在我们的电子表格中使用它。
什么是数组?
数组在字典中的意思是“有序的排列”。在编程和Excel中,数组的含义非常相似,除了这里的数组指的是“数据的有序排列”。
数组主要用于对类似类型的数据进行分组或分类。在函数中,它类似于变量,不同之处在于变量只能保存一个项,而数组可以保存多个项。
例如,如果我有一个动物列表,我想给它赋值变量,我可以这样做:
一个=“马”
B = "狗"
C = "猫"
D = "牛"
E =“鸭子”
这太冗长乏味了。相反,我可以这样使用一个数组:
动物=数组(“马”、“狗”、“猫”,牛”、“鸭”)
因此,我们没有声明五个单独的变量,而是只声明了一个可以保存所有五个项的数组。
最好的部分?我们可以随时引用或提取任何特定项。这使得数组在编程中特别强大。
数组在Excel中
当高级用户无法使用内置Excel函数时,数组是他们可以使用的工具。数组可以用来执行使用普通公式似乎不可能完成的任务。它们可能听起来很复杂,但是一旦你掌握了它们的窍门,你就会在所有的电子表格中使用它们。
和变量一样,VBA中的数组也是使用Dim来声明的。除了数组名称之外,您还需要指定数组将存储的值的数量和类型。
完整的语法如下所示:
例如
地点:
昏暗的=声明变量/数组的命令
ExampleArray=数组名
(6)=存储在数组中的值的个数*
作为字符串=存储在数组中的数据类型
*在VBA中,和大多数编程语言一样,计数从0开始。因此,(6)实际上意味着有7个存储值(从0到6)。如果你想从1开始计数,你可以写(1到6),像这样:
昏暗的MyArray(1到6)作为字符串
了解更多关于Excel中的数组Excel 2013高级在线培训课程。
如何使用Excel VBA数组
了解数组在Excel中如何工作的最好方法是自己创建一个。
步骤1:启用Developer选项卡
第一步是启用Excel中的Developer选项卡。这将使我们能够创建公式和宏。
进入File -> Options -> Customize Ribbon。
在主要的标签,确保开发人员被选中。
步骤2:启用宏
在开始创建数组之前,需要启用宏(出于安全考虑,默认禁用宏)。
进入文件->选项->信任中心
点击信任中心设置
在弹出的窗口中,单击宏设置
选择“启用所有宏”
步骤3:创建一个按钮
在编写我们的小VBA程序之前,我们将首先创建一个可以运行它的按钮。
打开Developer选项卡,点击' Insert '
选择‘Form Control’下的‘Button’,如图所示:
单击并拖动工作表中的任何位置以创建按钮。
的指定宏弹出对话框。在这里,您可以为按钮指定一个自定义名称,也可以保持原样。选择名称后,单击新
“Microsoft Visual Basic for Applications”窗口将弹出。您也可以通过按ALT + F11访问它。
在主代码编辑器窗口中,在' Sub Button1_Click() '之后输入下面的程序:
Dim CustomerName(1 to 10) As String For i = 1 to 10 CustomerName(i) = InputBox(" Please Enter the CustomerName ") Cells(i, 1) = CustomerName(i) Next . Cells(i, 1) = CustomerName(i
通过点击保存图标来保存程序。在保存对话框中输入一个名称,并确保选择Excel Macro-Enabled工作簿
您的程序现在与按钮相关联。按下按钮将触发VBA程序
新的Excel ?这Excel快速通道课程帮助你开始。
步骤4:运行程序
保存程序后关闭VBA窗口(ALT + F11)。现在您将看到带有按钮的原始工作表。
单击按钮(如果按钮未启用,请尝试单击任何单元格以在单击之前取消选中它)。提示您输入“请输入客户名称”(或您在程序中写的任何其他内容)将弹出。
由于我们将公式中的范围设置为1到10,因此提示符将要求我们输入10次。无论你在对话框中输入什么值,都会自动填满第一列:
“它!您已经成功地使用数组创建了VBA宏!
分解:理解VBA数组公式
在我们离开之前,让我们再看看上面使用过的VBA数组公式:
Sub Button1_Click() Dim CustomerName(1 To 10) As String For i = 1 To 10 CustomerName(i) = InputBox(“请输入客户名称”)Cells(i, 1) = CustomerName(i) Next End Sub
让我们试着更好地理解它:
子Button1_Click ()
这个命令基本上用于引用我们在工作簿中创建的按钮。Button1是我们按钮的名称;Click ()是触发它的动作。
昏暗的CustomerName(1到10)作为字符串
这是我们实际的数组。在这里:
昏暗的=赋值变量和数组的命令
CustomerName= array的名称
(1 - 10)=数组中存储值的个数。
作为字符串=这告诉Excel要存储的值是字符串,而不是数字(数字将是整数)
继续
对于i = 1到10
这是VBA为循环。它告诉VBA依次遍历值1到10。
CustomerName(i) = InputBox(“请输入客户名称”)
在这里,CustomerName(我)循环到I(从1到10),为每个输入的值赋值InputBox。
Cells(i, 1) = CustomerName(i)
这告诉Excel输入值我在第一列的前一行中接受。如果你想把它们写在第二列,你可以这样写细胞(我,2)
下一个
每个For循环必须以Next命令结束。
终止子
这表明程序结束了。
既然您知道了如何使用数组,为什么不学习类似于先进的Excel培训它将向你介绍更高级的Excel概念,包括如何使用VBA数组。