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

Excel 如果不是(范围)或(范围)=无,则,excel,vba,Excel,Vba,我正在制作一个宏来突出显示某些行/单元格,以供进一步查看。一些值/空白以红色突出显示,其他值/空白以橙色突出显示,而整行应为黄色。我从前面的一个问题中得到了一些帮助,并添加了更多的细节,它工作得几乎完美,但我被困在最后一件事上,找不到任何类似的问题。我希望指定的单元格在同一黄色行上为橙色和红色。我可以实现橙色或红色,但当它通过下一个检查时,它会以黄色重新突出显示该行-丢失上一个颜色 例如,如果为空,A列必须为红色;如果填充“否”,B列必须为橙色。如果我使用相同的颜色,我的所有检查都有效,但当我将

我正在制作一个宏来突出显示某些行/单元格,以供进一步查看。一些值/空白以红色突出显示,其他值/空白以橙色突出显示,而整行应为黄色。我从前面的一个问题中得到了一些帮助,并添加了更多的细节,它工作得几乎完美,但我被困在最后一件事上,找不到任何类似的问题。我希望指定的单元格在同一黄色行上为橙色和红色。我可以实现橙色或红色,但当它通过下一个检查时,它会以黄色重新突出显示该行-丢失上一个颜色

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

我的代码使用:

如果不是,那就什么都不是了 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) 把这一行涂成黄色

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

重读你的问题。。。。听起来您需要1)将行涂成黄色,因此将该行移到
If
的外部,然后2)如果它不是空的,则将其涂成颜色
rngRed
,如果它不是空的,则将其涂成颜色
rngOrange
。只需使用两个if语句,一个用于红色,一个用于橙色,对吗?您的编辑工作正常!!!你太棒了哈哈谢谢你@kms5549请记住将BigBen的答案标记为正确-有关更多详细信息,请参阅。