Excel VBA函数,多个用户定义的范围

Excel VBA函数,多个用户定义的范围,vba,excel,function,range,Vba,Excel,Function,Range,我一直在试用excel中的公共函数来创建我自己的公式,我和我的同事可以使用这些公式,但是在谷歌搜索了很多次之后,我无法解决这个问题 在本例中,我试图创建一个公式,用户可以通过在单元格中键入“=SumCells()”来调用该公式,然后选择要与一组citera求和的范围,这些citera也应该从excel中选择 最重要的是,我希望有一个选项,我可以查看日期标准,如果日期等于另一个单元格的日期+另一个单元格的整数,该整数将加上x个月,那么它也将对其进行汇总 所以,一旦我使用这个公式,它就会像这样 感谢

我一直在试用excel中的公共函数来创建我自己的公式,我和我的同事可以使用这些公式,但是在谷歌搜索了很多次之后,我无法解决这个问题

在本例中,我试图创建一个公式,用户可以通过在单元格中键入“=SumCells()”来调用该公式,然后选择要与一组citera求和的范围,这些citera也应该从excel中选择

最重要的是,我希望有一个选项,我可以查看日期标准,如果日期等于另一个单元格的日期+另一个单元格的整数,该整数将加上x个月,那么它也将对其进行汇总

所以,一旦我使用这个公式,它就会像这样


感谢您的帮助和问候

从范围对象中删除范围“包装器”

Public Function SumCells(RangeToSum As Range, _
                         CriteraRange_1 As Range, Critera_1 As Range, _
                         CriteraRange_2 As Range, Critera_2 As Range, MonthsToAdd As Integer)

    SumCells = Application.SumIfs(RangeToSum, _
             CriteraRange_1, Critera_1.Value, _
             CriteraRange_2, DateAdd("m", MonthsToAdd, Critera_2.Value))

End Function

Public Function SumCells(RangeToSum As Range, _
                         CriteraRange_1 As Range, Critera_1 As Range, _
                         CriteraRange_2 As Range, Critera_2 As Range, MonthsToAdd As Integer)

    SumCells = Application.SumIfs(RangeToSum, _
             CriteraRange_1, Critera_1.Value, _
             CriteraRange_2, DateAdd("m", MonthsToAdd, Critera_2.Value))

End Function