我试图在 excel 中制定一个小调度程序来更好地管理我的生活。我为每个事件使用不同的单元格颜色(黄色表示工作,红色表示大学等)。我已经有一个宏CountColor
,它可以计算在一定范围内出现的颜色,效果很好(我几乎是从在线解决方案中复制粘贴的)。我现在使用宏来计算使用时间到单元格中,如下所示:
单元格包含=ColorCount(H5;B2:F15)
,而第一个参数的内部颜色确定要计数的颜色,而 seconds 参数是计算颜色的范围。这个宏工作正常。最后一个数字只是上述三个的总和。
然而,我现在面临的问题是,更改单元格的内部颜色不会触发公式的重新计算。我创建了一个简单的按钮(不是 ActiveX 按钮)并为其分配了一个宏:
Public Sub CalcButton_onclick()
Worksheets(1).Range("I13:I16").Calculate
End Sub
但是当我单击按钮时(我也尝试使用重新计算整个工作表Worksheets(1).Calculate
)没有任何反应。例如,只有当我更改单元格中的值时,我的时间才会重新计算。我的按钮的宏肯定被执行了,我通过Worksheets(1).Cells(20, 20).Value = "Test"
在Calculate
调用后添加来测试它,它正确地改变了给定单元格的值。
为了完成,我还添加了 CountColor 宏的代码:
'counts the occurence of the interior color of rColor in rRange
Public Function ColorCount(ByRef rColor As Range, ByRef rRange As Range) As Integer
Dim rCell As Range
Dim lCol As Long
Dim vResult As Integer
vResult = 0
lCol = rColor.Interior.ColorIndex
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
ColorCount = vResult
End Function
我不太确定问题是什么,但我相信我可能误解了该Calculate
方法。我只创建了上面的 2 个宏。我感谢任何帮助!
顺便说一句meta:这是在问题中正确使用图片吗?我想不出更好的方法来展示我希望输出的样子。