vba⼆维数组初始化_VBA进阶数组基础03:⼆维数组
VBA可以定义多达60维的数组,但实际上很少使⽤三维以上的数组。本⽂主要讲解⼆维数组及其使⽤。
声明⼆维数组
与⼀维数组⼀样,使⽤Dim语句来声明⼆维数组。例如,语句
Dim myArray(3,7) AsInteger
声明了⼀个名为myArray的包含4⾏8列共32个元素的⼆维整型数组,如图1所⽰。
图1
也可以使⽤以下语句,使myArray数组的下标索引值从1开始。
Dim Arr(1 To 4, 1 To8) As Integer
声明⼀个4⾏8列的⼆维数组。
声明⼆维数组的⽅式
① Dim数组名(数字,数字) As数据类型
② Dim数组名(数字,数字)
各部分的说明与上篇⽂章相同。(注,谢谢doubao朋友在上篇⽂章中指出的歧义;数组名后的数字定义了数组最⼤下标索引值,这个数字可能该维的最⼤元素数,这取决于Option Base语句)
给⼆维数组赋值
下⾯的过程给⼆维数组myArray赋值:
Sub testMyArray()
Dim myArray(3, 7) As Integer
Dim i As Integer, j As Integer一维数组的定义和初始化
For i = 0 To 3
For j = 0 To 7
myArray(i, j) = i * j
Next j
Next i
End Sub
运⾏程序后,数组myArray中各元素的值如图2所⽰。
图2
获取⼆维数组元素的值
如图3所⽰,可以看出数组myArray的第2⾏第3列的元素的值为2。
图3
可以使⽤myArray(1, 2)来获取其值,如下⾯的过程:
Sub testMyArray1()
Dim myArray(3, 7) As Integer
Dim i As Integer, j As Integer
For i = 0 To 3
For j = 0 To 7
myArray(i, j) = i * j
Next j
Next i
MsgBox '数组myArray的第2⾏第3列元素的值是: ' & _
'myArray(1,2) = ' &myArray(1, 2)
End Sub
运⾏代码后的结果如图4所⽰。
图4
由于默认下标索引值基于0开始,因此第2⾏的元素下标索引值是1,第3列元素下标索引值是2。
注意,如果下标超出了数组范围,则会出现运⾏时错误:下标越界。
⼆维数组的下限与上限
可以使⽤LBound函数和UBound函数来确定⼆维数组的下限和上限,即⼆维数组各维的下标的最⼩索引值和最⼤索引值。例如,下⾯的过程:
Sub testMyArray2()
Dim myArray(3, 7) As Integer
Dim i As Integer, j As Integer
Dim k As Integer, str As String
For i = 0 To 3
For j = 0 To 7
myArray(i, j) = i * j
Next j
Next i
For k = 1 To 2
str = str & '数组myArray的第' & k &'维的下限是: ' &LBound(myArray, k)
str = str & '上限是: ' &UBound(myArray, k) & vbCr & vbCr
Next k
MsgBox str
End Sub
运⾏后的结果如图5所⽰。
图5
可以看出,在LBound函数和UBound函数中,第1个参数为数组名称,第2个参数指定数组的维数。
本⽂简要介绍了⼆维数组的基本操作,下⼀篇⽂章将重点讲解⼆维数组在⼯作表中的应⽤。相关链接:
本⽂属原创⽂章,转载请联系我(xhdsxfjy@163)或者注明出处。
欢迎在下⾯留⾔,完善本⽂内容,让更多的⼈学到更完美的知识。