Excel UDF с ограничением ParamArray, например, SUMIFS

Я пытаюсь закодировать Excel UDF с синтаксисом, аналогичным встроенному SUMIFSто есть с подписью вроде

Function myUDF(param1 As Type1, ParamArray paramRest() As Variant) As MyType

но условие, что ParamArray должен иметь четное количество элементов (в идеале даже Typed). Это вообще возможно?

Например, если вы пытаетесь ввести =SUMIFS(A:A,B:B,1,C:C) в ячейку, Excel будет жаловаться на использование неправильного количества аргументов (потому что ParamArray будет Array(Range("B:B"),1,Range("C:C")) и, следовательно, иметь нечетное количество элементов). Я хочу такое же поведение для myUDF,

В настоящее время я занимаюсь этим после факта:

If UBound(paramRest) Mod 2 <> 1 Then
    myUDF = CVErr(xlErrValue)
    Exit Function
End If

Но это чувствует себя "грязным".

0 ответов

Другие вопросы по тегам