📅  最后修改于: 2023-12-03 15:20:57.781000             🧑  作者: Mango
在VBA中,通过数组可以存储多个相同类型的数据,并且可以通过下标访问数组中的元素。但是,在实际应用中,通常需要知道数组的长度,以便在对数组进行操作时不会越界。
VBA提供了一种内置函数来获取数组的长度,即UBound
函数。UBound
函数用于返回数组在指定维度上的上限。
UBound(arrayname[, dimension])
arrayname
:必选项。要返回其上限的数组。dimension
:可选项。要返回其上限的维度。默认为1
,即返回第一维的上限。Sub test()
Dim arr(10) As Integer
MsgBox UBound(arr)
End Sub
上述示例中,定义了一个包含10个整数的数组arr
,然后用MsgBox
输出了数组的长度,即数组的上限。
在处理二维数组时,需要区分行数和列数。可以通过UBound
函数获取二维数组在不同维度上的上限。具体示例如下:
Sub test()
Dim arr(2, 4) As Integer
MsgBox "行数:" & UBound(arr, 1) + 1 & vbCrLf & "列数:" & UBound(arr, 2) + 1
End Sub
上述示例中,定义了一个包含3行5列的二维数组arr
,然后用MsgBox
输出了数组的行数和列数。需要注意的是,数组的上限是从0开始计数的,因此需要在输出结果时加上1。
对于多维数组,可以通过使用多个UBound
函数来获取不同维度上的上限。具体示例如下:
Sub test()
Dim arr(1, 2, 3) As Integer
MsgBox "第一维长度:" & UBound(arr, 1) + 1 & vbCrLf & _
"第二维长度:" & UBound(arr, 2) + 1 & vbCrLf & _
"第三维长度:" & UBound(arr, 3) + 1
End Sub
上述示例中,定义了一个包含2个元素,每个元素包含3行4列的三维数组arr
,然后用MsgBox
输出了数组的长度信息。
通过上述示例,我们可以看到,在VBA中获取数组长度的方法非常简单方便,只需要调用UBound
函数即可。但是需要注意的是,数组的上限是从0开始计数的,因此在输出结果时需要加上1。