|
- Function SumIFColor(条件区 As Range, 颜色单元格1 As Range, 颜色单元格2 As Range, Optional 统计区)
- Dim arr(), Item, i As Long '声明变量
- If IsMissing(统计区) Then '如果第三参数被忽略
- '则将“条件区”当作“统计区”,并将它赋值给数组变量arr(使用数组可对代码提速)
- arr = Intersect(条件区, 条件区.Parent.UsedRange).Value
- Else '否则
- '将“统计区”参数重置为“条件区”的相同高度和宽度,然后赋值给数组变量arr
- arr = 统计区(1).Resize(条件区.Rows.Count, 条件区.Columns.Count).Value
- End If
- For Each Item In arr '遍历数组arr
- i = i + 1 '累加计数器
- '如果条件区中某个单元格背景色与颜色单元格区域(参照区)颜色一致
- If 条件区.Cells(i).Interior.Color = 颜色单元格1(1).Interior.Color Or 颜色单元格2(1).Interior.Color Then
- SumIFColor = SumIFColor + Item '将数组中对应的数值累加到SumIFColor中
- End If
- Next
- End Function
复制代码 |
评分
-
查看全部评分
|