在每行中唯一地为单元格着色

维皮尔

我想为我的Excel工作表中的数据上色:

我需要分别查看每一行,并为具有相等数据值的单元格上色相同的颜色。

下面的代码对前10行中的所有数据进行迭代,并对每个单元格进行不同的着色。我不确定该如何记住有色单元格及其颜色,如果当前单元格已在该行的列表中被记住,则应用该颜色而不是新颜色。

在vba中有什么可用作动态列表吗?如何?

Sub Test1()

    Dim x As Integer, rowInt As Integer, color As Integer
    Application.ScreenUpdating = False

    For rowInt = 1 To 10
        color = 3

        'numRows = number of cells before the first blank cell in the row ("A" & rowInt)
        numRows = Range("A" & rowInt, Range("A" & rowInt).End(xlToRight)).Columns.Count
        If numRows >= 16384 Then
            numRows = 1
        End If

        Range("A" & rowInt).Select
        For x = 1 To numRows

            With Selection.Interior
                .ColorIndex = color
                .Pattern = xlSolid
            End With

            color = color + 1

            ActiveCell.Offset(0, 1).Select
        Next
    Next

    Application.ScreenUpdating = True

End Sub
保罗·比卡

您可以使用字典来捕获唯一值的颜色索引


Option Explicit

Public Sub ColorUniquesByRows()
    Const START_ROW = 2
    Dim ur As Range, arr As Variant, clrIndex As Long, i As Long, j As Long, ci As Long
    Dim cArr As Variant, r As Long, g As Long, b As Long, a As Double, d As Object

    Set ur = Sheet1.UsedRange   'Or ThisWorkbook.Worksheets("Sheet1").UsedRange
    Set d = CreateObject("Scripting.Dictionary")
    Application.ScreenUpdating = False
    arr = ur
    clrIndex = 3
    For i = START_ROW To UBound(arr)            'Iterate each row
        For j = 1 To UBound(arr, 2)             'Iterate each column (in current row)
            If Len(arr(i, j)) > 0 Then          'Ignore empty cells
                If Not d.Exists(arr(i, j)) Then 'Capture color index for each unique value
                    If clrIndex > 56 Then clrIndex = 3  'More than 56 columns - reset indx
                    ci = ThisWorkbook.Colors(clrIndex)  'Determine font color vs clr index
                    r = ci Mod 256: g = ci \ 256 Mod 256:   b = ci \ 65536 Mod 256
                    a = 1 - ((0.299 * r) + (0.587 * g) + (0.144 * b)) / 255
                    d(arr(i, j)) = clrIndex & " " & IIf(a < 0.5, vbBlack, vbWhite)
                    clrIndex = clrIndex + 1
                End If
                cArr = Split(d(arr(i, j)))
                With ur.Cells(i, j)
                    .Interior.colorIndex = cArr(0)
                    .Font.Color = cArr(1)
                End With
            End If
        Next j
        clrIndex = 3    'moving to next row: reset color index and dictionary object
        Set d = CreateObject("Scripting.Dictionary")
    Next i
    Application.ScreenUpdating = True
End Sub

注意:这也会根据背景颜色确定字体颜色


结果

工作表1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用python或R为Excel单元格中的一些数字着色

来自分类Dev

如何使用python或R为Excel单元格中的一些数字着色

来自分类Dev

如何使用公式为Excel中的单元格着色?

来自分类Dev

在JTable单元格中为文本着色

来自分类Dev

使用Word VBA根据单元格值为表格中的单元格着色

来自分类Dev

为多张纸上的单元格着色

来自分类Dev

在excel或R中为给定范围的每个单元格中创建唯一值

来自分类Dev

MySQL计数唯一的单元格组合,为null

来自分类Dev

MySQL计数唯一的单元格组合,为null

来自分类Dev

VBA Excel - 为包含基于另一个单元格值的值的行中的每个单元格着色

来自分类Dev

合并每行中的单元格

来自分类Dev

在 JSP 中限制每行单元格

来自分类Dev

为一系列递增单元格的最后一个单元格着色

来自分类Dev

在单元格中着色 UIImage - ObjectiveC

来自分类Dev

如何选择列中单元格的唯一值

来自分类Dev

根据表格中每行的第一个单元格锁定行中的单元格范围

来自分类Dev

在php中唯一地合并json数据

来自分类Dev

如何在Swift 5中为基于单元格的NSTableVew中的各个行着色

来自分类Dev

在Excel中为单元格中的部分文本着色

来自分类Dev

如何使用 kableExtra 为一个单元格着色

来自分类Dev

尝试为多个单元格计算用逗号分隔的唯一值时,如何排除空白单元格

来自分类Dev

有什么办法可以在excel中为相同的相邻单元格着色?

来自分类Dev

如何使用Google表格中的条件格式基于列表为单元格着色

来自分类Dev

如果其中包含特定字符,如何在python中为单元格着色?

来自分类Dev

根据关键单元格中数据的匹配为单独的行着色

来自分类Dev

是否可以使用Cognos BI中的数据为单元格着色?

来自分类Dev

表示Color对象时为JTable中的单个单元格着色

来自分类Dev

自动为从AJAX中提取的表格中的单元格重新着色

来自分类Dev

在ASP.NET GridView中为所有空单元格着色

Related 相关文章

  1. 1

    如何使用python或R为Excel单元格中的一些数字着色

  2. 2

    如何使用python或R为Excel单元格中的一些数字着色

  3. 3

    如何使用公式为Excel中的单元格着色?

  4. 4

    在JTable单元格中为文本着色

  5. 5

    使用Word VBA根据单元格值为表格中的单元格着色

  6. 6

    为多张纸上的单元格着色

  7. 7

    在excel或R中为给定范围的每个单元格中创建唯一值

  8. 8

    MySQL计数唯一的单元格组合,为null

  9. 9

    MySQL计数唯一的单元格组合,为null

  10. 10

    VBA Excel - 为包含基于另一个单元格值的值的行中的每个单元格着色

  11. 11

    合并每行中的单元格

  12. 12

    在 JSP 中限制每行单元格

  13. 13

    为一系列递增单元格的最后一个单元格着色

  14. 14

    在单元格中着色 UIImage - ObjectiveC

  15. 15

    如何选择列中单元格的唯一值

  16. 16

    根据表格中每行的第一个单元格锁定行中的单元格范围

  17. 17

    在php中唯一地合并json数据

  18. 18

    如何在Swift 5中为基于单元格的NSTableVew中的各个行着色

  19. 19

    在Excel中为单元格中的部分文本着色

  20. 20

    如何使用 kableExtra 为一个单元格着色

  21. 21

    尝试为多个单元格计算用逗号分隔的唯一值时,如何排除空白单元格

  22. 22

    有什么办法可以在excel中为相同的相邻单元格着色?

  23. 23

    如何使用Google表格中的条件格式基于列表为单元格着色

  24. 24

    如果其中包含特定字符,如何在python中为单元格着色?

  25. 25

    根据关键单元格中数据的匹配为单独的行着色

  26. 26

    是否可以使用Cognos BI中的数据为单元格着色?

  27. 27

    表示Color对象时为JTable中的单个单元格着色

  28. 28

    自动为从AJAX中提取的表格中的单元格重新着色

  29. 29

    在ASP.NET GridView中为所有空单元格着色

热门标签

归档