VBA函数具有可变数量的数组作为参数

时间:2016-06-14 11:02:58

标签: vba

关于如何使用ParamArray创建具有可变数量参数的vba函数,有很多帖子。但我需要创建一个具有可变数量的数组作为参数的函数。也就是说,我的函数将至少有两个数组作为输入,但可能有几个。

该功能可能显示为:

MyFunc(A1:A10,B1:B10)

在这种情况下,它将有两个数组作为参数,或者可能是:

MyFunc(A1:A10,B1:B10,C1:C10,D1:D10)

在这种情况下会有四个数组。可以使用VBA处理这种类型的函数。如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

以下是传递可变数量范围的一种方法,如您的问题所示。

Sub MyFunc(ByRef Ranges() As Range)

    Dim ObjCell As Range
    Dim nIndex As Integer
    For nIndex = 0 To UBound(Ranges)
        For Each ObjCell In Ranges(nIndex).Cells
            MsgBox ObjCell.Text
        Next ObjCell
    Next nIndex
End Sub

并调用上述功能,如下所示。

Public Sub Auto_open()

    Dim Ranges(4) As Range

    Set Ranges(0) = Worksheets("Sheet1").Range("A1:A10")
    Set Ranges(1) = Worksheets("Sheet1").Range("B1:B10")
    Set Ranges(2) = Worksheets("Sheet1").Range("C1:C10")
    Set Ranges(3) = Worksheets("Sheet1").Range("D1:D10")

    MyFunc Ranges

End Sub

希望这有帮助!