You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA 按B列奇偶分组为A列对应行设置多组单元格填充色

修正后可直接使用的VBA代码
Sub 按B列值填充A列颜色()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim cell As Range
    Dim i As Integer
    ' 各颜色计数变量,不需要统计可以删除
    Dim cntGreen As Long, cntBlue As Long, cntYellow As Long, cntBrown As Long
    
    ' 定义颜色常量,可按需修改RGB值
    Const 绿色 As Long = vbGreen
    Const 蓝色 As Long = vbBlue
    Const 黄色 As Long = vbYellow
    Const 棕色 As Long = RGB(139, 69, 19) ' 自定义棕色,无内置常量
    
    ' 遍历前8个工作表,不足8个则处理所有存在的工作表
    For i = 1 To Application.Min(8, ThisWorkbook.Worksheets.Count)
        Set ws = ThisWorkbook.Worksheets(i)
        ' 获取当前工作表A列最后一行有数据的行号
        lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        ' 数据不足5行则跳过当前工作表
        If lastRow < 5 Then GoTo NextWorksheet
        
        ' 遍历B列第5行到最后一行的所有单元格
        For Each cell In ws.Range("B5:B" & lastRow)
            ' 先判断B列值的奇偶性
            If WorksheetFunction.IsEven(cell.Value) Then
                ' 偶数:判断是否为奇数+1(即分组序号为4、6、8这类)
                If (cell.Value / 2) Mod 2 = 1 Then
                    ws.Cells(cell.Row, "A").Interior.Color = 棕色
                    cntBrown = cntBrown + 1
                Else
                    ws.Cells(cell.Row, "A").Interior.Color = 蓝色
                    cntBlue = cntBlue + 1
                End If
            Else
                ' 奇数:判断是否为偶数+1(即分组序号为3、5、7这类)
                If ((cell.Value - 1) / 2) Mod 2 = 1 Then
                    ws.Cells(cell.Row, "A").Interior.Color = 黄色
                    cntYellow = cntYellow + 1
                Else
                    ws.Cells(cell.Row, "A").Interior.Color = 绿色
                    cntGreen = cntGreen + 1
                End If
            End If
        Next cell
NextWorksheet:
    Next i
    
    ' 不需要统计结果可以删除下面这行
    MsgBox "填充完成,统计:绿色" & cntGreen & "行,蓝色" & cntBlue & "行,黄色" & cntYellow & "行,棕色" & cntBrown & "行"
End Sub

代码说明

  • 兼容1-8个工作表的处理需求,自动识别工作表数量,不会出现下标越界错误
  • 保留原有代码从第5行开始处理的逻辑,如果数据起始行不是第5行,修改Range("B5:B")和lastRow < 5的数值即可
  • 颜色已按需求匹配,如需调整颜色直接修改开头的颜色常量对应的RGB值即可
  • 处理时会自动跳过数据量不足5行的空工作表,不会报错
  • 保留了原代码的计数统计功能,不需要的话可以删除对应变量和最后的弹窗代码

内容的提问来源于stack exchange,提问作者user14909564

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:45:07