嘿伙计们,我在excel表2003中应用了下一个vba函数:
Function ContarColor(range_data As Range, criteria As Range) As Long
Dim datax As Range
Dim xcolor As Long
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor Then
ContarColor = ContarColor + 1
End If
Next datax
End Function
我使用该功能计算在测试范围内有多少颜色。 例如,我使用:
=ContarColor(D4:AG5;Y31)
当D4:AG5是行的分析范围时,Y31是引用的行颜色。
它的功能。但是,如果我在此范围内添加或删除颜色,并且未按公式中的输入,则不会自动刷新。
我可以在编辑范围时刷新吗?
答案 0 :(得分:2)
不幸的是,没有默认事件会跟踪单元格的颜色变化(假设我们正在讨论的是普通格式而不是条件格式)。有一些解决方法,但需要循环或类模块(workarounds)。
另外,默认情况下,Excel VBA中的UDF(用户定义函数)不易变。如果您尝试在函数开头添加Application.Volatile
,您将看到在更改单元格颜色并按F9(或工作簿中的任何其他更改)后,该函数应重新计算。