如何修改VBA宏实现基于单元格值的条件格式:深蓝背景白字
批量设置行格式的VBA代码修改方案
以下是修改后的完整代码,完全满足你的需求:
Sub FormatNightRows() Dim r As Long Dim lastRow As Long ' 动态获取C列最后一行数据,适配每日报表的行数变化 lastRow = Cells(Rows.Count, "C").End(xlUp).Row For r = 2 To lastRow If Cells(r, "C").Value = "Night" Then ' 设置目标区域:B到P列 With Rows(r).Range("b1:p1") ' 深蓝色背景 .Interior.Color = RGB(0, 0, 128) ' 也可以用 vbDarkBlue ' 白色字体 .Font.Color = vbWhite ' 可选:字体加粗,不需要就删掉这行 .Font.Bold = True End With ' 可选:如果需要清除非Night行的自定义格式,取消下面的注释 ' Else ' With Rows(r).Range("b1:p1") ' .Interior.Color = xlNone ' .Font.Color = xlAutomatic ' .Font.Bold = False ' End With End If Next End Sub
关键修改说明
- 新增动态行号获取:不用硬写固定行数100,自动匹配C列最后一行数据,适配每日下载的报表
- 替换字体设置:把原红色字体改成白色,并添加了可选的加粗设置
- 添加背景色设置:通过
Interior.Color设置深蓝色,两种写法(RGB值/内置常量)都可以用 - 用
With语句优化代码:减少重复调用,让代码更简洁高效
内容的提问来源于stack exchange,提问作者Ryan Peterson
相关产品推荐
相关产品推荐

