我有一个电子表格,其中实现了评分板。 我需要的行为是当具有分数值的单元格在列b附近的单元格上升时,将它的颜色更改为绿色,当单元格分数值下降到靠近它的单元格时,它将颜色更改为红色。VBA从单元格更改前保存值
的单元格范围,其中所述得分变化是E5:E67
简而言之: 当用户输入F列的数,得分提高列E,并且在列b(在同一行)颜色必须变成绿色或红色
我做了这个VBA代码,但没有运气。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("e5:e67")) Is Nothing Then
If Target.Column = 5 Then
thisRow = Target.Row
Dim OldValue As Variant
Application.EnableEvents = False
Application.Undo
OldValue = Target.Value
Application.Undo
Application.EnableEvents = True
If OldValue < Target.Value Then
Range("b" & thisRow).Interior.ColorIndex = 4
ElseIf OldValue > Target.Value Then
Range("b" & thisRow).Interior.ColorIndex = 3
End If
End If
End If
End Sub
当我在单元格中输入一些F5 E5上的得分提高,但B5单元格不改变颜色为绿色。 –
啊好的。在通过公式更改值的目标上未触发更改事件。你需要使用'Worksheet_Calculate'事件。 –
在单元格e5中,我有一个公式,当用户在单元格f5中输入一个数字时,它的值增加10个点。如果用户输入1个单元格e5增长10个点,如果用户输入2个单元格e5增长20个点。 –