- 正常数组,vba的数组就是有这个毛病,从0开始会多一个,可以用代码Option Base 1设定从1开始,但我感觉完全没必要
Sub Hello()
Dim arr(3) As String
arr(0) = "1"
arr(1) = "2"
arr(2) = "3"
arr(3) = "4"
For i = 0 To 3
Debug.Print arr(i)
Next
End Sub
Option Base 1
Sub Hello()
Dim arr(3) As String
''arr(0) = "1"
arr(1) = "2"
arr(2) = "3"
arr(3) = "4"
For i = 1 To 3
Debug.Print arr(i)
Next
End Sub
2.vba的数组还有一种写法
Sub Hello()
Dim arr(3 To 6) As String
arr(3) = "1"
arr(4) = "2"
arr(5) = "3"
arr(6) = "4"
For i = 3 To 6
Debug.Print arr(i)
Next
End Sub
输出结果:
1
2
3
4
3.数组循环时需要计算数组的size,这个时候就不得不先提一笔UBound,LBound函数
3.1 UBound:返回数组的最大索引数
3.2 LBound:返回数组的最小索引数
3.3 使用UBound,LBound函数对1和2的循环做一下更改
Sub Hello()
Dim arr(3) As String
arr(0) = "1"
arr(1) = "2"
arr(2) = "3"
arr(3) = "4"
For i = 0 To UBound(arr)
Debug.Print arr(i)
Next
End Sub
输出结果:
1
2
3
4
Sub Hello()
Dim arr(3 To 6) As String
arr(3) = "1"
arr(4) = "2"
arr(5) = "3"
arr(6) = "4"
For i = LBound(arr) To UBound(arr)
Debug.Print arr(i)
Next
End Sub
输出结果:
1
2
3
4