
Sub 宏1()
Dim rga, rgb As Range
Dim i As Integer
Dim arr
arr = Array(3, 4, 6, 7, 8)
For Each rga In Range("b2:k2")
If Application.WorksheetFunction.CountIf(Range(Cells(2, 2), Cells(2, rga.Column)), rga) = 1 And Application.WorksheetFunction.CountIf(Range("b2:k2"), rga) <> 1 Then
For Each rgb In Range("b2:k2")
If rgb = rga Then rgb.Interior.ColorIndex = arr(i)
Next rgb
i = i + 1
End If
Next rga
End Sub
追问能给代码加个注释吗?方便我理解修改,谢谢
追答Sub 宏1()
Dim rga, rgb As Range
Dim i As Integer
Dim arr
arr = Array(3, 4, 6, 7, 8) '设置填充颜色代码
For Each rga In Range("b2:k2") '从左到右遍历b2:k2单元格
If Application.WorksheetFunction.CountIf(Range(Cells(2, 2), Cells(2, rga.Column)), rga) = 1 And Application.WorksheetFunction.CountIf(Range("b2:k2"), rga) <> 1 Then '如果该单元格(rga)在B2至当前单元格中第一次出现并且在b2:k2中出现次数大于1
For Each rgb In Range("b2:k2") '从左到右遍历b2:k2单元格
If rgb = rga Then rgb.Interior.ColorIndex = arr(i) '将等于rga的单元格填充数组第i个颜色代码表示的颜色
Next rgb
i = i + 1
End If
Next rga
End Sub
颜色代码对照

我要去吃饭了,暂时不会回答追问