在某些情形下,可以使用Array函数方便地填充数组。例如,下面的代码:
Dim myArray myArray =Array('国庆节', '中秋节', '元旦', '春节')
等价于:
Dim myArray(3) myArray(0) = '国庆节' myArray(1) = '中秋节' myArray(2) = '元旦' myArray(3) = '春节'
因此,Array函数可以将一组值批量赋给一个数组。
Array函数语法 Array函数返回一个Variant型数组,该数组由传递给该函数的参数组成。其语法为: Array([元素1],[元素2],…,[元素n]) 其中:
Dim myArray As Variant myArray = VBA.Array(“国庆节”,”中秋节”,”元旦”) 那么数组的基数总是0,与Option Base的设置无关。即Option Base 1时,myArray(1)的值仍然是“中秋节”。
编程技巧 1. 在已确定元素内容时,使用Array函数更有效率。例如: Dim myArray AsVariant myArray =Array('国庆节', '中秋节', '元旦', '春节')
2. 可以使用Array函数创建多维数组,例如: Dim myArray AsVariant
myArray =Array(Array('One', 'Two', 'Three'), _ Array('Four','Five', 'Six'), _ Array('Seven','Eight', 'Nine')) 创建了一个3行3列的二维数组。 然而,要访问这个数组中的元素,例如第2行第3列的元素数据“Six”,不能够使用: myArray(1, 2) 这样,将产生“下标越界”错误。 而应该使用: myArray(1)(2) 或者,先声明一个Variant型变量,然后将相应行的第1维赋值给该变量,再使用该变量来访问相应列的元素数据,例如: Dim vElement AsVariant vElement =myArray(1)
MsgBox vElement(2)
3. 可以使用Array函数来为ActiveX 列表框或组合框控件赋值,例如: Me.ListBox1.List =Array('国庆节', '中秋节', '元旦', '春节') 给列表框添加了4个节日名。
4. 可以使用Array函数创建控件数组,即将控件名称作为Array函数的参数。然后,可以将数组元素当作相应的控件对象来使用,例如: Private SubCommandButton1_Click() Me.ListBox1.Clear Me.ListBox1.List = Array('国庆节', '中秋节', '元旦', '春节') Me.ListBox1.ListIndex = 0 End Sub
Private SubCommandButton2_Click() Dim myArray As Variant myArray = Array(ListBox1, CommandButton1) MsgBox myArray(0).Text End Sub 运行后的结果如下图1所示。 图1
示例 示例1:使用Array函数创建数组 Sub TestArray() Dim myArray() As Variant
'从逗号分隔的字符串列表中创建数组 myArray = Array('One','Two', 'Three') '显示数组元素 MsgBox myArray(0) & vbCr &myArray(1) & vbCr & myArray(2) '也可以使用数值作为参数 myArray = Array(10, 20, 30) '显示数组元素 MsgBox myArray(0) & vbCr &myArray(1) & vbCr & myArray(2) End Sub
示例2:下面的示例先使用Array函数将一组值赋给变量myArray,然后将该变量中的值输入到工作表Sheet1的第1行。 Option Base 1 Sub ArrayTest() Dim myArray As Variant Dim iCount As Integer
myArray = Array('姓名',”性别”,”成绩”)
With Worksheets(“Sheet1”) ForiCount = 1 To UBound(myArray) .Cells(1,iCount).Value = myArray(iCount) NextiCount End With End Sub 运行代码后的结果如图2所示。 图2
在某些情形下,需要检验某个变量是否为数组,以便于后续操作,此时,可以使用IsArray函数。
IsArray函数语法 IsArray函数返回一个Boolean值,表明传递给该函数的变量是否为数组。其语法为: IsArray(varname) 其中:
编程技巧 在不确定使用的变量是否为数组时,如果试图访问不存在的数组中的元素或者对其使用数组函数(如LBound或者UBound),就会导致错误。此时,可以先使用IsArray函数来确定其是否为数组,然后再进行后续相应的操作。 例如,下面的代码段检查变量myArray是否为数组,若不是则退出: If NotIsArray(myArray) Then Exit Sub
相关链接: VBA进阶 | 数组基础01: 用最浅显的介绍来帮助你认识数组
本文属原创文章,转载请注明出处。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 |
|
来自: zhangshoupen > 《我的微表》