VBA怎样判断单元格填充色为红色

我用条件格式设置了单元格的填充色,当填充色为红色时则说明键入的数据有错误。我用以下代码试过了,但是不起作用。
If Range(Chr(64 + Column - 1) & Trim(Str(Row + n - 1))).Interior.ColorIndex = 3 Then
MsgBox ("您键入的数据有误!请核对后再运行!")
Exit Sub
End If

用Range(Chr(64 + Column - 1) & Trim(Str(Row + n - 1))).Interior.ColorIndex = 3倒是可以给该单元格填充上红色。
要求识别条件格式定义的填充底色,正常的填充色可以识别。

把它用在工作表的Change事件中是没有问题的。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Interior.ColorIndex = 3 Then
MsgBox ("您键入的数据有误!请核对后再运行!")
Target.Select '重新指向单元格
Exit Sub
End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-14

 Sub abc()

    Dim rng As Range, rng1 As Range

    Dim y As Integer

        Set rng = Range("a1:d9")    ''''A1:D9区域

        For Each rng1 In rng

            y = rng1.Interior.ColorIndex ''''单元格颜色标记数

            If y > 0 Then MsgBox rng1.Address ''''如果Y>0,则提示该单元格的地址

        Next

End Sub

第2个回答  推荐于2017-09-14
把它用在工作表的Change事件中是没有问题的。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Interior.ColorIndex = 3 Then
MsgBox ("您键入的数据有误!请核对后再运行!")
Target.Select '重新指向单元格
Exit Sub
End If
End Sub本回答被提问者采纳
相似回答