如果值更改,我想更改单元格的格式。我只是需要它被遮蔽。
我正在尝试使用以下内容:
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Interior.ColorIndex = 45
End Sub
然而,这太敏感了。例如,如果我删除一行,整行会改变颜色,因为技术上它是一个变化。即使我进入一个单元格,不做任何更改并退出它,它也会改变格式。
是否有编辑上面的内容所以它只在值发生变化时格式化单元格?
由于
答案 0 :(得分:1)
我认为您可以使用以下代码作为进一步逻辑的基础。
这个想法是:我们需要在更改之前记住值,所以当选择某个范围时最好阅读它(因为你在谈论单个单元格,我没有考虑由更多单元组成的范围)。该值将存储在全局变量ValueOnEnter
中。
当最终做出改变时,我们比较"之前"在"之后,如果它们不同,请更改颜色。
Public ValueOnEnter As String
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value <> ValueOnEnter Then
Target.Interior.ColorIndex = 45
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
ValueOnEnter = Target.Value
End Sub