当遇到不同的值时更改单元格颜色

当遇到不同的值时更改单元格颜色

在此处输入图片描述

你好。我在 Excel 中插入了一个 SQL 查询来为我挑选类似上述的数据。

有没有办法可以设置 Excel 在每次遇到不同的值时自动更改背景颜色。例如,我们有查尔斯·基贡戈在橙色中,我希望当它遇到下一个值时不是 Kigongo Charles,它会将背景颜色更改为任何其他颜色。即当它达到罗伯特·基塔因布瓦,它会改变,然后当它达到姆布拉班图·劳伦斯,它会再次变为任何随机颜色。就像那样。我正在使用Excel 2016

任何解决办法都将受到高度赞赏

答案1

您可能对此宏感兴趣。我认为它现在正好满足您的要求。

Sub ColorIndex()
    Dim x As Integer
    Dim y As Integer
    Dim lRows As Long
    Dim lColNum As Long
    Dim iColor As Integer
    Dim iDupes As Integer
    Dim bFlag As Boolean

    lRows = Selection.Rows.Count
    lColNum = Selection.Column
    iColor = 2

    For x = 2 To lRows
        bFlag = False
        For y = 2 To x - 1
            If Cells(y, lColNum) = Cells(x, lColNum) Then
                bFlag = True
                Exit For
            End If
        Next y
        If Not bFlag Then
            iDupes = 0
            For y = x + 1 To lRows
                If Cells(y, lColNum) = Cells(x, lColNum) Then
                    iDupes = iDupes + 1
                End If
            Next y
            If iDupes > 0 Then
                iColor = iColor + 1
                If iColor > 56 Then
                    MsgBox "Too many duplicate companies!", vbCritical
                    Exit Sub
                End If
                Cells(x, lColNum).Interior.ColorIndex = iColor

                For i = 1 To 5
                    Cells(x, lColNum + i).Interior.ColorIndex = iColor
                Next i

                For y = x + 1 To lRows
                    If Cells(y, lColNum) = Cells(x, lColNum) Then
                        Cells(y, lColNum).Interior.ColorIndex = iColor
                            For i = 1 To 5
                                Cells(y, lColNum + i).Interior.ColorIndex = iColor
                            Next i
                    End If
                Next y
            End If
        End If
    Next x
End Sub

我编辑了代码,使水平线上的颜色也发生变化,直到距离所选单元格 5 个单元格为止。因此,您要做的就是选择数据库的所有名称,然后运行宏。

相关内容