Excel VBA - 使用不同颜色的颜色重复范围

时间:2016-09-30 08:54:02

标签: excel vba excel-vba colors duplicates

我在工作中对大型excel文件执行重复任务,并决定第一次使用VBA让我的生活更轻松。 我在互联网上找到了一个代码,修改后并将其改编为我自己的工作表,它运行正常。

我有一列ID,我需要找到重复ID的范围并将它们分组。到目前为止,我手动完成了这项工作并且需要很长此代码有效地为重复范围着色,但每次出现新范围时,它都不会切换为不同的颜色。

所以让我说我有这个: 001 001 001 002 002

它会将001颜色为蓝色,并将002颜色为蓝色。并不总是,但它发生了,我不希望这样。

以下是代码:

    Sub ColourDuplicates()
Dim Rng As Range
Dim Cel As Range
Dim Cel2 As Range
Dim Colour As Long


Set Rng = Worksheets("Sheet1").Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
Rng.Interior.ColorIndex = xlNone
Colour = 6
For Each Cel In Rng


If WorksheetFunction.CountIf(Rng, Cel) > 1 And Cel.Interior.ColorIndex = xlNone Then
Set Cel2 = Rng.Find(Cel.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False, SearchDirection:=xlNext)
    If Not Cel2 Is Nothing Then
        Firstaddress = Cel2.Address
        Do
        Cel.Interior.Color = Colour
        Cel2.Interior.Color = Colour
            Set Cel2 = Rng.FindNext(Cel2)

        Loop While Firstaddress <> Cel2.Address
    End If


Colour = Colour + 1

End If
Next

End Sub

那么,每次出现一组新值时,是否可以将其更改为不同的颜色?

非常感谢!

1 个答案:

答案 0 :(得分:1)

也许你想探索一个“Worksheet_OnChange”?如果它纯粹是手动的,它将很好地完成工作