例
工作表函数SUMIF是条件汇总中经常使用的函数,但是该函数对关闭的工作簿却无能为力。编写一个函数,完成SUMIF函数精确条件汇总的功能,实现对关闭的工作簿按条件汇总。
码
模拟SUMIF函数编写一个自定义函数MySumIF。在该自定义函数中,第1个参数和第3个参数作为条件区域和求和数据区域,采用变体型参数。当参数传递后,将参数中的所有元素赋值到自定义的一维数组中。然后利用循环对条件数组进行判断,并合计满足条件时相应的求和数据数组中的数据。
Option Explicit
Function MySumIF(Criteria_Range As Variant, Criteria As String, sum_Range As Variant)
Dim Rng As Variant
Dim arrCri()
Dim arrSum90
Dim dataCount As Long
Dim Total As Double
Dim i As Long
'赋值条件数组
dataCount = 0
ReDim arrCri(1 To 1)
For Each Rng In Criteria_Range
dataCount = dataCount + 1
ReDim Preserve arrCri(1 To dataCount)
arrCri(dataCount) = Rng
Next Rng
'赋值汇总数组
dataCount = 0
ReDim arrSum(1 To 1)
For Each Rng In sum_Range
dataCount = dataCount + 1
ReDim Preserve arrSum(1 To dataCount)
arrSum(dat