首页 > 解决方案 > 如何在列中找到相同的数据并填充颜色以显示它们?

问题描述

我在列中有数据并且数据具有相同的组,所以我想填充颜色以显示它们,但它有很多组。我不知道如何改变颜色。

我尝试使用If then elsearray但我不能这样做。

Sub Test()

    Dim c As Range
    Dim bottomA As Integer
    bottomA = Range("A" & Rows.Count).End(xlUp).Row
    For Each c In Range("A3:A" & bottomA)
        If c = c.Offset(1, 0) Or c = c.Offset(-1, 0) Then
           c.Interior.Color = 255
        End If
    Next c
End Sub

它具有相同的颜色,我认为它不适合我的工作,因为它考虑逐个单元格而不是按组来填充颜色。

当我的代码运行时,这张图片会告诉你

这就是我想要创建的代码来运行 如果有相同的值,它们将具有相同的颜色并且该颜色将不会再次使用如果该值是唯一的,则该范围将不会填充颜色

标签: excelvba

解决方案


使用Color属性和RGB函数。

Range("A1").Interior.Color = RGB(255, 0, 0)

说明

RGB 代表红色、绿色和蓝色。这是三种原色。每个组件的取值范围为 0 到 255。使用此功能,您可以制作每种颜色。

RGB(255,0,0) 给出纯色Red

Edit1: Range("A3", Range("A3").End(xlDown)返回从单元格 a3 到区域末尾单元格的范围。

如果要比较范围的值,则应更改

c = c.Offset(1, 0) Or c = c.Offset(-1, 0)

c.Value = c.Offset(1, 0).Value Or c.Value = c.Offset(-1, 0).Value

完整的 VBA 代码:

Sub Test()
    Dim c As Range
    For Each c In Range("A3", Range("A3").End(xlDown))
        If c = c.Offset(1, 0) Or c = c.Offset(-1, 0) Then
           c.Interior.Color = 255
        End If
    Next c
End Sub


推荐阅读