📜  从函数 vba 返回一个数组(1)

📅  最后修改于: 2023-12-03 14:49:21.702000             🧑  作者: Mango

从函数 VBA 返回一个数组

在 VBA 编程中,我们经常需要将多个数据项打包返回给调用方。数组是一种非常方便的数据结构,它可以存储大量的数据。本文将介绍如何从函数 VBA 返回一个数组。

声明一个函数返回数组

声明一个函数返回数组需要使用函数名称后面跟一个括号,并在括号内指定参数列表。对于数组类型的参数,需要使用圆括号 () 将数组的维度括起来。例如:

Function GetArray() As Integer()
    Dim arr(1 To 3) As Integer
    arr(1) = 10
    arr(2) = 20
    arr(3) = 30
    GetArray = arr
End Function

上面的代码声明了一个名为 GetArray 的函数,该函数返回一个整数类型的数组。在函数内部,声明了一个名为 arr 的数组,该数组有三个元素。然后将这个数组赋给函数的返回值。

调用一个返回数组的函数

调用一个返回数组的函数很简单。只需像调用任何其他函数一样使用函数名称和所需的参数。然后将返回的数组分配给一个变量。例如:

Sub TestGetArray()
    Dim res() As Integer
    res = GetArray()
    Debug.Print res(1) '输出 10
    Debug.Print res(2) '输出 20
    Debug.Print res(3) '输出 30
End Sub

上面的代码首先声明了一个名为 res 的整数数组变量,然后将调用 GetArray 函数返回的数组赋给 res。然后可以像操作任何其他数组一样使用变量 res 中的数据。

返回多维数组

以上例子都是返回一个一维数组。但是,在 VBA 中,也可以返回多维度的数组。例如:

Function GetMultiArray() As Integer()
    Dim arr(1 To 2, 1 To 2) As Integer
    arr(1, 1) = 10
    arr(1, 2) = 20
    arr(2, 1) = 30
    arr(2, 2) = 40
    GetMultiArray = arr
End Function

这个函数返回一个 2x2 的整数数组。在调用时,将返回的数组分配给一个对应的多维数组即可:

Sub TestGetMultiArray()
    Dim res() As Integer
    res = GetMultiArray()
    Debug.Print res(1, 1) '输出 10
    Debug.Print res(1, 2) '输出 20
    Debug.Print res(2, 1) '输出 30
    Debug.Print res(2, 2) '输出 40
End Sub
总结

在 VBA 中从函数返回数组是一种常见的编程任务。声明一个返回数组的函数需要在函数名称后面跟一个括号,并在括号内指定参数列表。调用这个函数时,将返回的数组分配给一个变量,就可以使用该变量中的数据了。多维数组也可以返回,只需在括号内指定对应的维度即可。