【发布时间】:2019-10-15 00:46:53
【问题描述】:
我在 Excel 中有一些 VBA,它计算一个单元格范围是否包含来自参考单元格的颜色,这很好用。但更改范围内任何单元格的颜色并不会更新总数。
理想情况下,我希望代码更新与引用匹配的彩色单元格的数量,并在单元格颜色更改时更新计数的总和。
我尝试在 If 语句中添加 Else 语句,这样如果一个单元格是“空白”或使用油漆罐按钮填充单元格的颜色“清除”,它会扣除一个数字,但这没有奏效.
Sub Colourif()
End Sub
Function CountColorIf(rSample As Range, rArea As Range) As Long
Dim rAreaCell As Range
Dim lMatchColor As Long
Dim lCounter As Long
lMatchColor = rSample.Interior.Color
For Each rAreaCell In rArea
If rAreaCell.Interior.Color = lMatchColor Then
lCounter = lCounter + 1
End If
Next rAreaCell
CountColorIf = lCounter
End Function
如果我使用油漆罐图标更改范围填充中的一个单元格以说“清除”,它不会更改填充参考颜色的单元格计数。
如果单元格填充从参考颜色更改时,我将非常感谢有关如何确保此代码自动更新总和的一些建议。
【问题讨论】:
-
您希望更改单元格时会发生更改,还是更改单元格并重新运行代码时会发生更改?
-
Sub ColorIf的意义何在?它没有可执行的语句。无论如何,更改单元格颜色不会触发工作表计算,这可能是您的问题。 -
@Gareth - 我确实希望在单元格更改时发生更改,而无需重新运行代码,就像我想的标准 Excel 公式一样
-
@John,我错了,我把这个放错了,或者至少忘了删除这个子。所以我需要触发工作表计算?我会调查一下,谢谢