首页 > 解决方案 > 如果单元格已经用绿色突出显示,如何忽略它

问题描述

我需要将一个工作簿表 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

标签: excelvba

解决方案


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

    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

推荐阅读