关于如何使用ParamArray创建具有可变数量参数的vba函数,有很多帖子。但我需要创建一个具有可变数量的数组作为参数的函数。也就是说,我的函数将至少有两个数组作为输入,但可能有几个。
该功能可能显示为:
MyFunc(A1:A10,B1:B10)
在这种情况下,它将有两个数组作为参数,或者可能是:
MyFunc(A1:A10,B1:B10,C1:C10,D1:D10)
在这种情况下会有四个数组。可以使用VBA处理这种类型的函数。如果是这样,怎么样?
答案 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
希望这有帮助!