📜  vba 数组长度 - VBA (1)

📅  最后修改于: 2023-12-03 15:20:57.781000             🧑  作者: Mango

VBA 数组长度

在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。