如何基于AD列值控制AE列空单元格的高亮状态(VBA宏需求)
优化后的VBA宏代码
以下是满足需求的宏代码,核心逻辑是针对AE列空单元格,根据AD列对应值决定是否保留高亮:
Sub EmptyTerminalTO() Application.ScreenUpdating = False Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim currentRow As Long Set ws = ThisWorkbook.Sheets("Wire List") lastRow = ws.Cells(ws.Rows.Count, "AD").End(xlUp).Row ' 获取AD列最后一行数据的行号 i = 0 ' 统计保留高亮的单元格数量 For currentRow = 2 To lastRow ' 先检查AE列当前行是否为空 If ws.Cells(currentRow, "AE").Value = "" Then Select Case ws.Cells(currentRow, "AD").Value Case "" ' AD列为空时,给AE列空单元格设置红色高亮 ws.Cells(currentRow, "AE").Interior.Color = RGB(255, 87, 87) i = i + 1 Case "SPLICE" ' AD列为"SPLICE"时,清除AE列空单元格的填充色 ws.Cells(currentRow, "AE").Interior.ColorIndex = xlColorIndexNone End Select End If Next currentRow Rapport8 = i ' 将统计结果赋值给变量 Application.ScreenUpdating = True End Sub
关键修改说明
- 直接引用工作表对象
ws,避免使用Activate操作,提升代码稳定性与运行效率 - 先获取AD列最后一行行号,精准控制循环范围
- 核心逻辑分层:先判断AE列是否为空,再根据AD列对应值执行不同操作,完全匹配需求规则
- 仅统计AD列为空且AE列为空的单元格数量,对应原代码中
Rapport8的统计逻辑
内容的提问来源于stack exchange,提问作者Yassine Salami
相关产品推荐
相关产品推荐

