夜雨聆风学习资料网

ARTICLE · 1349430

Excel-vba一键整行高亮异常数据|产能不达标、不良率超标直接标红,不用反复设置条件格式

Excel-vba一键整行高亮异常数据|产能不达标、不良率超标直接标红,不用反复设置条件格式
工厂生产台账一大堆,每天要找不良超标的、产量没达成的记录。自带条件格式做多了容易卡,改阈值还要重新设置。这段数组VBA,直接匹配规则,整行标记,改标准一键重刷,适合产量表、品质报表。
功能说明
1. 支持自定义监控列、阈值、判断方向(大于/小于)
2. 匹配上规则,整行填充颜色高亮,一眼锁定异常
3. 运行时先清空之前标记的底色,不会新旧颜色叠在一起
4. 数组读取数据,上万行跑起来流畅不卡顿
5. 只处理数据区域,表头不动,空行自动跳过
6. Excel、WPS宏版本都兼容
使用步骤
Alt+F11打开VBA编辑器 → 插入【模块】,粘贴代码
文件另存为 .xlsm 启用宏格式,打开台账运行【MarkAbnormalRow】
vba    
Option Explicit
Sub MarkAbnormalRow()
    Dim arr As Variant
    Dim lastRow As Long, lastCol As Long
    Dim i As Long, markCol As Long
    Dim threshold As Double
    Dim sht As Worksheet
    '==== 这里按需改参数 ====
    Set sht = ActiveSheet
    markCol = 6       '判断用的列,F列=6,不良率放F列就填6
    threshold = 0.05  '阈值,示例:5%不良率,写0.05
    'IsGreater=True 代表:大于阈值就标红;False=小于阈值标红
    Const IsGreater As Boolean = True
    Const markColor As Long = RGB(255, 200, 200) '浅红底色
    '=======================
    Application.ScreenUpdating = False
    lastRow = sht.Cells(sht.Rows.Count, markCol).End(xlUp).Row
    lastCol = sht.UsedRange.Columns.Count
    If lastRow < 2 Then
        MsgBox "没有数据!", vbExclamation
        Application.ScreenUpdating = True
        Exit Sub
    End If
    '先清除原有填充底色
    sht.Rows("2:" & lastRow).Interior.ColorIndex = xlColorIndexNone
    arr = sht.Range(sht.Cells(2, 1), sht.Cells(lastRow, markCol)).Value
    For i = 1 To UBound(arr)
        If IsNumeric(arr(i, markCol)) Then
            If IsGreater Then
                If arr(i, markCol) > threshold Then
                    sht.Rows(i + 1).Interior.Color = markColor
                End If
            Else
                If arr(i, markCol) < threshold Then
                    sht.Rows(i, markCol)
                    sht.Rows(i + 1).Interior.Color = markColor
                End If
            End If
        End If
    Next i
    Application.ScreenUpdating = True
    MsgBox "异常标记完成!", vbInformation
End Sub
修改位置
- markCol:监控哪一列(A=1、B=2、F=6)
- threshold:临界值,百分比记得转小数,8% 填 0.08
- IsGreater:True=超过阈值标红;False=低于阈值标红
- markColor:换颜色,RGB(255,255,180)是浅黄色
注意事项
1. 表头固定第1行,判断列必须是纯数字,文本会自动跳过不报错
2. 每次运行自动清掉上次标记,不用担心颜色越标越乱
3. 合并单元格慎用,容易出现上色错位
每日持续分享办公实用技巧,专业vba开发,关注收藏不迷路。
Excel-vba一键按指定列拆分工作表,按产品型号/班组自动拆分|数组版,万行数据不卡顿
Excel-vba台账怕崩、文件损坏?定时自动备份,后台静默存副本
Excel-vba高级录入窗体|下拉选择+自动时间+重复校验,防重复,录完自动追加台账
别再手动找数据!Excel万能查询公式

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料