本文给出了一种根据单元格背景色汇总单元格数据的方法:使用VBA创建一个自定义函数来实现该目的。
我们希望这个函数工作的方式是,填充了颜色的单元格来表示额外的信息,例如代表诸如“目标已实现”或“目标未达到”等内容。单元格颜色可以表示任何字面意思。
示例数据如下图1所示。
图1
我们的函数名为SUMCOLOR,包含两个参数,语法为:
SUMCOLOR(MatchColor, SumRange)
其中:
这样,在单元格G4中,我们的公式应该像下面:
=SUMCOLOR(F4, A4:C11)
当按下回车键后,应该看到结果为40。
如果将公式向下复制到单元格G6,其结果应该如下图2所示。
图2
打开VBE,插入一个标准模块,输入下面的代码:
Function SUMCOLOR(matchColor As Range, SumRange As Range) As Double
Dim cell As Range
Dim myColor As Long
myColor =matchColor.Cells(1, 1).Interior.Color
For Each cell In SumRange
If cell.Interior.Color = myColor Then
SUMCOLOR= SUMCOLOR + cell.Value
End If
Next cell
End Function
现在,你可以像使用Excel内置的工作表函数一样使用SUMCOLOR函数了。
注:本文学习整理自www.xelplus.com,供有兴趣的朋友参考。