我在下面有一些代码可以使单元格在预定范围内,从白色到红色闪烁颜色。
出于我的目的,我需要此代码仅适用于具有特定值的单元格 - 例如任何数值低于50的单元格。
适用于整个范围的代码如下
Public NextFlash As Double
Public Const FR As String = "Sheet1!B3:D6"
Sub StartFlashing()
If Range(FR).Interior.ColorIndex = 3 Then
Range(FR).Interior.ColorIndex = xlColorIndexNone
Else
Range(FR).Interior.ColorIndex = 3
End If
NextFlash = Now + TimeSerial(0, 0, 1)
Application.OnTime NextFlash, "StartFlashing", , True
End Sub
Sub StopFlashing()
Range(FR).Interior.ColorIndex = xlColorIndexNone
Application.OnTime NextFlash, "StartFlashing", , False
End Sub
答案 0 :(得分:0)
这样的东西可以看每个细胞。
避免查看每个单元格的另一个选项是更改范围"Sheet1!B3:D6"
,以便仅将其设置为低于50的单元格。但这需要持续跟踪并重新评估事件更改的范围。
因此,对于12个单元格范围,下面的循环方法应该足够了。
Public NextFlash As Double
Public Const FR As String = "Sheet1!B3:D6"
Sub StartFlashing()
Dim rng1 As Range
For Each rng1 In Range(FR).Cells
If rng1.Value < 50 Then
If rng1.Interior.ColorIndex = 3 Then
rng1.Interior.ColorIndex = xlColorIndexNone
Else
rng1.Interior.ColorIndex = 3
End If
Else
rng1.Interior.ColorIndex = xlColorIndexNone
End If
Next
NextFlash = Now + TimeSerial(0, 0, 1)
Application.OnTime NextFlash, "StartFlashing", , True
End Sub
Sub StopFlashing()
Range(FR).Interior.ColorIndex = xlColorIndexNone
Application.OnTime NextFlash, "StartFlashing", , False
End Sub