颜色行取决于数字的另一列

Posted

技术标签:

【中文标题】颜色行取决于数字的另一列【英文标题】:Color rows depending on another columns by numbers 【发布时间】:2021-12-20 00:59:40 【问题描述】:

我正在尝试修改以下代码。 从 1 到 8 的工作表,可能更少。 工作表 1 = A 列包含数字,B 列包含将 A 列分组的数字。 A列 B列 11200 3 11202 3 12500 4 12502 4 还有更多的行,所以B列中的偶数=蓝色,奇数列B=绿色 需要应用更多颜色,所以我需要 iseven+1=color yellow,isodd+1=color brown。

    Sub Color()

Dim CvbRed, cYellow, cGreen, cBlue As Integer

For Each cell In Range("B5:B" & Range("A" & Rows.Count).End(xlUp).Row)

 Select Case Color
 
Case IsEven
Range("A5:A").Cells.Interior.Color = vbRed
        cRed = cRed + 1

Case IsOdd
Range("A5:A").Cells.Interior.Color = vbYellow
        cYellow = cYellow + 1
  
Case IsEven + 2
Range("A5:A").Cells.Interior.Color = vbGreen
        cGreen = cGreen + 1
    
Case IsOdd + 2
Range("A5:A").Cells.Interior.Color = vbBlue
        cBlue = cBlue + 1
    
    End Select
Next cell
End Sub

请查看本帖上图,A列只需要颜色,取决于B列何时有偶数、奇数、偶数+1、奇数+1。

【问题讨论】:

非常感谢 CDP1802,该代码将节省大量时间。请在这篇文章中查看上图,A列只需要颜色,取决于B列何时有偶数、奇数、偶数+1、奇数+1。 查看更新的答案 非常感谢 CDP1802 完美运行。 【参考方案1】:

使用Mod

Option Explicit
Sub ColorMacro()

    Dim wb As Workbook, cell As Range, lastrow As Long
    Dim n As Integer, i As Integer
    Dim arColor ' odd-green, even-blue, odd+1-brown, even+1-yellow
    arColor = Array(RGB(128, 255, 128), _
              RGB(128, 128, 255), _
              RGB(200, 150, 100), _
              RGB(255, 255, 128))
     
    Set wb = ThisWorkbook
    For n = 2 To wb.Sheets.Count
        With wb.Sheets(n)
            lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row
            For Each cell In .Range("B2:B" & lastrow)
                i = (cell.Value - 1) Mod 4
                cell.Offset(,-1).Interior.Color = arColor(i)
            Next
        End With
    Next
    
End Sub

【讨论】:

非常感谢 CDP1802 完美运行。

以上是关于颜色行取决于数字的另一列的主要内容,如果未能解决你的问题,请参考以下文章

基础图中点的颜色取决于另一列中的值

用通过比较另一列的数据获得的数据填充一列

根据 s-s-rS 中另一列的值更改数字格式

有没有办法将数据帧的一列中的所有行与另一个数据帧的另一列(火花)中的所有行进行比较?

Pyspark:用同名的另一列替换行值

一列中相同值的R子集行取决于另一列中的多个值