VBA功能中的可选范围

Gro*_*rMD 5 excel vba excel-vba

我试图返回某个范围的列数,有时我需要一个范围,但是有时我需要多个范围。

我设置了可选范围,因此可以选择多个范围。如果引用函数原型中未在电子表格中提供的范围,则会得到#Value!错误。

我需要一种方法来检查可选范围是否为null,void empty等。因此,我不必引用该范围。

这是VBA函数原型:

Function GetColoumnCount(ARange1 As Range, Optional ARange2 As Range, Optional ARange3 As Range, Optional ARange4 As Range) As Integer

    Dim Result As Integer
    Result = 0

    Result = ARange1.Columns.Count ' This works
    Result = ARange1.Columns.Count + ARange2.Columns.Count ' This doesn't work

    GetColoumnCount = Result    
End Function
Run Code Online (Sandbox Code Playgroud)

在我的电子表格中,我必须在一个单元格中输入此内容才能使该功能起作用。
=GetColoumnCount(BC34:BK34, BC35:BD35, BE35:BF35, BG35:BH35)
这违反了具有可选参数的目的。

RBa*_*ung 3

像这样尝试一下

Function GetColoumnCount(ARange1 As Range, Optional ARange2 As Range, Optional ARange3 As Range, Optional ARange4 As Range) As Long  
    Dim Result As Long
    Result = 0

    Result = ARange1.Columns.Count ' This works
    If Not ARange2 Is Nothing Then
        Result = Result + ARange2.Columns.Count
    End If

    GetColoumnCount = Result    
End Function
Run Code Online (Sandbox Code Playgroud)