'当前工作表change事件 Option Explicit Dim dic Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If TypeName(dic) = "Empty" Then setdic If IsNumeric(Target.Value) Then Dim t t = Val(Target.Value) With Target .Font.Color = IIf(dic.exists(t), vbRed, vbBlack) '红色看起来更清楚一点 .Interior.ColorIndex = IIf(dic.exists(t), 6, 0) End With End If End Sub Function setdic() Dim arr, i arr = Array(10, 9, 20, 31, 42, 41, 3, 4, 14, 15, 25, 26, 36, 37, 47, 48) Set dic = CreateObject("scripting.dictionary") For i = 0 To UBound(arr): dic.Add arr(i), 1: Next End Function