VBA 二维数组
二维数组相当于表格数据。第1维相当于行,第2维相当于列。
1 声明语法
Dim 数组变量名称(第1维最大下标,第2维最大下标) As 元素数据类型
声明时小括号内两个下标用逗号隔开。
2 访问元素
数组变量名称(第1维下标,第2维下标)
3 示例
4名学生3门课程的成绩如下。
学生序号 | 语文成绩 | 数学成绩 | 英语 |
---|---|---|---|
1 | 81 | 82 | 83 |
2 | 91 | 92 | 93 |
3 | 71 | 72 | 73 |
4 | 61 | 62 | 63 |
通过数组存储。
Sub array12()
Dim scoreArr(3, 2) As Integer
'第1名同学的3项成绩
scoreArr(0, 0) = 81
scoreArr(0, 1) = 82
scoreArr(0, 2) = 83
'第2名同学的3项成绩
scoreArr(1, 0) = 91
scoreArr(1, 1) = 92
scoreArr(1, 2) = 93
'第3名同学的3项成绩
scoreArr(2, 0) = 71
scoreArr(2, 1) = 72
scoreArr(2, 2) = 73
'第4名同学的3项成绩
scoreArr(3, 0) = 61
scoreArr(3, 1) = 62
scoreArr(3, 2) = 63
End Sub
4 获取二维数组的最大下标
二维数组的下标的获取方法:
LBound(arr , i)
数组arr第i维的最小下标。
UBound(arr , i)
数组arr第i维的最大下标。
示例
'获取下标
'第1维的最大下标
Debug.Print UBound(scoreArr, 1) '输出 3
'第1维的最小下标
Debug.Print LBound(scoreArr, 1) '输出 0
'第2维的最大下标
Debug.Print UBound(scoreArr, 2) '输出 2
'第2维的最小下标
Debug.Print LBound(scoreArr, 2) '输出 0
5 遍历二维数据
示例
For i = LBound(scoreArr, 1) To UBound(scoreArr, 1)
For j = LBound(scoreArr, 2) To UBound(scoreArr, 2)
Debug.Print i & "," & j & "=" & scoreArr(i, j), ;
Next
Debug.Print
Next
输出结果
0,0=81 0,1=82 0,2=83
1,0=91 1,1=92 1,2=93
2,0=71 2,1=72 2,2=73
3,0=61 3,1=62 3,2=63