如图,在工作表按Alt+F11,VBA窗口对应Sheet右边空白输入以下代码
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
For Each Rng In [A1:D2]
If Rng.Address = Target.Address Then Rng.Interior.ColorIndex = 3
If WorksheetFunction.IsText(Rng.Value) Then Rng.Interior.ColorIndex = xlNone
If Rng.Value > 0 Then Rng.Interior.ColorIndex = xlNone
Next
Application.EnableEvents = True
End Sub
'两个事件一起触发效果更好
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
For Each Rng In [A1:D2]
If Rng.Address = Target.Address Then Rng.Interior.ColorIndex = 3
If WorksheetFunction.IsText(Rng.Value) Then Rng.Interior.ColorIndex = xlNone
If Rng.Value > 0 Then Rng.Interior.ColorIndex = xlNone
Next
Application.EnableEvents = True
End Sub
-----------------------------------------------------------
深绿=51,深青=49,深蓝=11,靛蓝=55,
灰色80=56,深红=9,橙色=46,深黄=12,
绿色=10,青色=14,蓝色=5,蓝灰=47,
灰色50=16,红色=3,浅橙色=45,酸橙色=43,
海绿=50,水绿色=42,浅蓝=41,紫罗兰=13,
灰色40=48,粉红=7,金色=44,黄色=6,
鲜绿=4,青绿=8,天蓝=33,梅红=54,
灰色25=15,玫瑰红=38,茶色=40,浅黄=36,
浅绿=35,浅青绿=34,淡蓝=37,淡紫=39,白色=2