如何批量高亮Sheet2中与Sheet1无匹配的序列号所在行
Excel批量标记无匹配序列号行的简便方法
方法一:条件格式(无需代码,设置后自动生效)
- 打开Sheet2,选中所有需要检查的行(直接拖选行号区域,或选中数据所在的全部行)
- 点击「开始」选项卡 → 「条件格式」→ 「新建规则」
- 选择「使用公式确定要设置格式的单元格」,输入公式:
=COUNTIF(Sheet1!$C:$C, $E1)=0(公式里的$E1对应Sheet2存序列号的E列,若列变更需修改字母) - 点击「格式」→ 「填充」选项卡选红色,确定后保存规则即可。之后Sheet2里只要E列序列号在Sheet1的C列找不到匹配,整行会自动变红
方法二:VBA宏(适合重复执行的场景)
- 按下
Alt + F11打开VBA编辑器 - 右键点击工作簿名称 → 「插入」→ 「模块」
- 粘贴以下代码:
Sub MarkUnmatchedRows() Dim ws1 As Worksheet, ws2 As Worksheet Dim rng1 As Range, rng2 As Range, cell As Range Set ws1 = ThisWorkbook.Sheets("Sheet1") Set ws2 = ThisWorkbook.Sheets("Sheet2") '只取两列中有内容的单元格,提升运行效率 Set rng1 = ws1.Range("C:C").SpecialCells(xlCellTypeConstants) Set rng2 = ws2.Range("E:E").SpecialCells(xlCellTypeConstants) '清除之前的红色标记 ws2.UsedRange.Interior.ColorIndex = xlNone '遍历Sheet2的E列,无匹配则整行标红 For Each cell In rng2 If IsError(Application.Match(cell.Value, rng1, 0)) Then cell.EntireRow.Interior.Color = vbRed End If Next cell End Sub
- 按下
F5运行宏,也可给宏设置快捷键,后续一键就能完成标记
内容的提问来源于stack exchange,提问作者Cole Snody
相关产品推荐
相关产品推荐

