【发布时间】:2020-10-03 14:18:15
【问题描述】:
我正在尝试突出显示某个范围内的所有重复项。扭曲是我希望每个不同的值都有不同的颜色。例如,所有值“Apple”都是一种颜色。所有值“汽车”将是另一种颜色等。我找到了一种方法来做到这一点,尽管它只能在一个列上运行。我需要一些帮助才能让它在多个列上运行。这是我的示例的照片:
这是我正在运行的 VBA 代码,目前仅突出显示 C 列:
Sub different_colourTest2()
Dim lrow As Integer
lrow = Worksheets("Sheet2").Range("C2").CurrentRegion.Rows.Count - 1 + 2
For N = 3 To lrow
If Application.WorksheetFunction.CountIf(Worksheets("Sheet2").Range("C3:C" & lrow), Worksheets("Sheet2").Range("C" & N)) = 1 Then
GoTo skip
Else
Worksheets("Sheet2").Range("C" & N).Interior.ColorIndex = Application.WorksheetFunction.Match(Worksheets("Sheet2").Range("C" & N), Worksheets("Sheet2").Range("C3:C" & lrow), 0) + 2
End If
skip: Next N
Worksheets("Sheet2").Activate
Range("C3").Select
End Sub
如果有人能告诉我如何让它涵盖一系列不同的列和行,将不胜感激!
旁注:我也在寻找某种方法,当范围内的单元格为空时不返回错误。这不是重点,但如果有人对此有答案,也会很高兴听到它。
【问题讨论】:
-
如果重复元素的数量大于调色板怎么办?电子表格中可以复制的值的数量是否有限制?
-
我不介意某些重复值是否重复颜色...我没有太多其他选择
-
或者我可以使用某种颜色的变体(例如更改不透明度和色调等),但这暂时是我最不担心的。
-
顺便说一句,
GoTo Skip is neither nice (jumping back and forth in the code interrupts its flow is considered bad practice) nor is it necessary. If you take it out the code wouldn't work any differently. That's because theIf .. Then` 语句已经暗示了一个跳转,但不是不赞成的:-) -
感谢您的反馈,我会考虑的,尽管它不能解决我的任何问题...
标签: excel vba duplicates conditional-formatting