将条件格式应用于大量文本单元格

将条件格式应用于大量文本单元格

我有一张包含最多大约 100 个不同文本值的表格,我想根据文本为它们着色,以便您可以直观地看到哪些单元格具有相同的文本(表!B2:DB100)。

我有一个单独的表,其中列出了表中的值(动态)(list!A1:A100)。

一种可能的解决方案是应用条件格式来确定表!B2:DB100 中的单元格是否等于列表!A1。如果是,则用颜色 1 着色。然后添加另一个条件格式,说明如果表!B2:DB100 中的单元格等于列表!A2,则颜色为颜色 2。依此类推。

手动执行此操作会很痛苦,因为有 100 个可能的文本值。

我相信我可以使用宏来做到这一点,它还有一个额外的好处,就是你可以以一种有序的方式应用 RGB 值。

事实上,宏是最好的方法吗?应用大约 100 种条件格式会拖慢电子表格的速度吗?有没有更简单的方法可以达到同样的效果?

答案1

不管怎样,我有一些工作得相当好的东西。我写了一个宏来应用条件格式。

Sub conditional()
'
' conditional Macro

i = 1
station = 1
colorscheme = 1
Do Until Sheets("Data").Cells(i + 3, 3) = ""
    a = "=Data!" + Sheets("Data").Cells(i + 3, 3).Address
    c1 = 255
    c2 = 147 + 17 * station
    Select Case colorscheme
        Case 1 'red
            mycolor = RGB(c1, c2, c2)
        Case 2 'yellow
            mycolor = RGB(c1, c1, c2)
        Case 3 'green
            mycolor = RGB(c2, c1, c2)
        Case 4 'cyan
            mycolor = RGB(c2, c1, c1)
        Case 5 'blue
            mycolor = RGB(c2, c2, c1)
        Case 6 'purple
            mycolor = RGB(c1, c2, c1)
    End Select
    Range("H4:BE48").FormatConditions.Add Type:=xlTextString, String:=a, _
        TextOperator:=xlContains
    With Range("H4:BE48").FormatConditions(Range("H4:BE48").FormatConditions.Count)
        .Interior.Color = mycolor
        .StopIfTrue = True
    End With
    i = i + 1
    station = station + 1
    If station = 5 Then
        station = 1
        colorscheme = colorscheme + 1
    End If
    If colorscheme = 7 Then
        colorscheme = 1
    End If
Loop

End Sub

以下是示例中的样子:

条件格式

我欢迎任何意见、建议或改进。

相关内容