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