A macro to get all interior colorindex has been used in thisworkbook

1集合的方法:

Sub getallcolor()
Dim sh As Worksheet, x As New Collection, colors(), c As Range, i As Long
On Error Resume Next
For Each sh In Sheets
For Each c In sh.UsedRange
x.Add c.Interior.ColorIndex, "key" & c.Interior.ColorIndex
Next
Next
ReDim colors(1 To x.Count)
For i = 1 To x.Count
colors(i) = x(i)
Next
MsgBox "The following colorindex has been used in thisworkbook:" & vbCrLf & vbCrLf & Join(colors, vbCrLf)
End Sub

2字典的方法:

Sub getallcolor()
Dim sh As Worksheet, r As Range, mycolor As Integer
With CreateObject("scripting.dictionary")
    For Each sh In Sheets
        For Each r In sh.UsedRange
           mycolor = r.Interior.ColorIndex
           If Not .exists(mycolor) Then .Add mycolor, Nothing
        Next
    Next
    MsgBox "The following colorindex has been used in thisworkbook:" & vbCrLf & Join(.keys, vbLf)
End With
End Sub 

原文地址:https://www.cnblogs.com/fengju/p/6336324.html