如果单元格已经用绿色突出显示,该如何忽略呢?

时间:2019-05-23 06:48:51

标签: excel vba

我需要将标题从一个工作簿工作表1匹配到另一工作簿工作表1。如果标题匹配,则需要将特定的单元格颜色更改为绿色,如果部分匹配,则将单元格颜色更改为黄色,如果它与任何标题都不匹配,然后颜色变为红色。当我这样做时,所有单元格都变为红色..我只想添加一些条件,例如如果该单元格已经具有绿色,则忽略该单元格红色,但我有可能将绿色更改为黄色。请帮助我解决此问题

'标题代码

If InStr(1, plan_Title, pca_Title) > 0 Then
    If (UCase(plan_Title) = (pca_Title)) Then
        Spotpca.Range("E" & j).Interior.Color = rgbGreen
        Spotplan.Range("f" & i).Interior.Color = rgbGreen
    Else
        Spotpca.Range("E" & j).Interior.Color = rgbYellow
        Spotplan.Range("f" & i).Interior.Color = rgbYellow
    End If
Else
    Spotpca.Range("E" & j).Interior.Color = rgbRed
    Spotplan.Range("f" & i).Interior.Color = rgbRed

End If

1 个答案:

答案 0 :(得分:0)

您的代码尚不完整,所以我只是猜测您正在循环,我要做的就是检查单元格是否为绿色,如果是,请转到下一行(?)

    Option Explicit

    Sub Painting()

    'code for title
        For i = 1 To x
            For j = 1 To y
                If spotpca.Range("E" & j).Interior.Color = rgbGreen Then GoTo Nexttitle 'check if the cell is green
                If InStr(1, plan_Title, pca_Title) > 0 Then
                    If (UCase(plan_Title) = (pca_Title)) Then
                        spotpca.Range("E" & j).Interior.Color = rgbGreen
                        Spotplan.Range("f" & i).Interior.Color = rgbGreen
                    Else
                        spotpca.Range("E" & j).Interior.Color = rgbYellow
                        Spotplan.Range("f" & i).Interior.Color = rgbYellow
                    End If
                Else
                    spotpca.Range("E" & j).Interior.Color = rgbRed
                    Spotplan.Range("f" & i).Interior.Color = rgbRed
                End If
            Next j
Nexttitle:
        Next i

    End Sub