如果不是(范围)或(范围)=则无

时间:2019-08-27 00:50:05

标签: excel vba

我正在处理一个宏,以突出显示某些行/单元格以供进一步检查。一些值/空白将以红色突出显示,而其他值将以橙色突出显示,而整个行应为黄色。我从上一个问题中获得了一些帮助,并添加了更多详细信息,它几乎可以正常运行,但我坚持最后一件事,找不到任何类似的问题。我希望指定的单元格在同一黄色行上为橙色和红色。我可以达到橙色或红色,但是当它通过下一个检查时,它将以黄色重新突出显示行-丢失了先前的颜色。

例如,如果空白为空,则A列必须为红色;如果填充为“否”,则B列必须为橙色。如果我使用相同的颜色,我所有的检查都可以使用,但是当我设置为同时使用这两种颜色时,都将失败。

我使用的代码:

如果没有rngRed则什么也没有 rngRow.Interior.Color = vbYellow rngRed.Interior.Color = vbRed

我想不出一种方法来将橙色(颜色索引45)加入该混合液而不会引起错误。让我知道您是否需要比我提供的一小部分更多的代码,或者对实现此目的有任何其他想法。谢谢!!!

这有效:

    If Not rngRed Is Nothing Then
    rngRow.Interior.Color=vbYellow
    rngRed.Interior.Color=vbRed

这不起作用:

        If Not rngRed Or rngOrange = Nothing Then
            rngRow.Interior.Color = vbYellow
            rngRed.Interior.Color = vbRed
            rngOrange.Interior.ColorIndex = 45
        End If

1 个答案:

答案 0 :(得分:2)

基于重新阅读您的问题,听起来您正在寻求执行以下操作:

1)将行涂成黄色。

2)为rngRed着色,如果不是空白的话。

3)为rngOrange着色,如果不是空白的话。

像这样:

rngRow.Interior.Color = vbYellow

If Not rngRed Is Nothing Then
    rngRed.Interior.Color = vbRed
End If

If Not rngOrange Is Nothing Then
    rngOrange.Interior.ColorIndex = 45
End If