我正在尝试对一个排除彩色列的列进行非常简单的总结。我希望总结的列是我的所有帐户,绿色代表付费帐户。我想要一个代表“剩余付款”价值的金额来跟踪我的进度,而不是每次都重做我的公式。颜色不是有条件的,也不是。
我已经创建了2个函数:
Function GetColor(MyCell As Range)
GetColor = MyCell.Interior.ColorIndex
End Function
和
Function PAID(MyCell As Range) As Boolean
If MyCell.Interior.ColorIndex = 50 Then
PAID = True
Else
PAID = False
End If
End Function
所以我已经在我的数字旁边创建了一个具有公式的列(具有更改的单元格编号):
=PAID(C13)
并且这会吐出TRUE或FALSE值,然后我可以根据我的SUMIF公式,目前我有这个(E列包含来自PAID函数的值,C包含我的帐户值):
=SUMIF(E2:E18,"FALSE",C2:C18)
我想看看是否可以绕过制作这个额外的列并直接在SUMIF中运行函数(或者可能是另一个函数?),这样我所要做的就是为我的单元格着色并只刷新一个公式。 / p>
答案 0 :(得分:0)
使用颜色作为程序决策过程的一部分并不理想,对于简单的任务来说过于复杂。
但是假设你想要这个(或者无法控制这个),并且想要求和的单元格 NOT 用Interior.ColorIndex = 50
着色 - 并假设你的值在范围{{ 1}}(或任何地方),执行此操作的VBA函数如下所示。
将此功能用作C2:C18
=PAID(C2:C18,50)
要重复,此函数会将所有单元格 NOT 与您提供给它的Function PAID(MyCells As Range, colour_avoid As Integer) As Double
Dim cc As Range
Dim accumulate As Double
accumulate = 0 'not needed but good practice
For Each cc In MyCells
If (cc.Interior.ColorIndex <> colour_avoid) Then
accumulate = accumulate + cc.Value
End If
Next cc
PAID = accumulate
End Function
相加(例如,50)。