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

请求编写VBA代码实现单元格POP内容自动判定

VBA代码实现POP内容批量判定(支持A1:An任意行数)

判定逻辑规则

输出ok的场景

  • 单元格内容包含 POP same as in CDAX / POP differs from CDAX
  • 单元格内容包含 POP same as in CDAX
  • 单元格内容未提及任何POP相关文本

输出Check POP date的场景

  • 单元格内容包含 POP date inserted
  • 单元格内容包含带日期的POP differs from CDAX(即文本中同时存在日期格式内容与POP differs from CDAX)

完整VBA代码

Sub PopContentCheck()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim cellText As String
    Dim hasPOP As Boolean
    Dim hasDatePOPDiff As Boolean
    
    ' 设置要处理的工作表,可根据实际修改Sheet名称
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    
    ' 获取A列最后一行数据行号
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 循环处理A1到最后一行
    For i = 1 To lastRow
        cellText = UCase(ws.Cells(i, "A").Value) ' 转为大写避免大小写匹配问题
        hasPOP = (InStr(cellText, "POP") > 0)
        hasDatePOPDiff = False
        
        ' 检查是否存在带日期的POP differs from CDAX
        If InStr(cellText, "POP DIFFERS FROM CDAX") > 0 Then
            hasDatePOPDiff = (InStr(cellText, "0") > 0 Or InStr(cellText, "1") > 0 Or _
                              InStr(cellText, "2") > 0 Or InStr(cellText, "3") > 0 Or _
                              InStr(cellText, "4") > 0 Or InStr(cellText, "5") > 0 Or _
                              InStr(cellText, "6") > 0 Or InStr(cellText, "7") > 0 Or _
                              InStr(cellText, "8") > 0 Or InStr(cellText, "9") > 0)
        End If
        
        ' 判定逻辑
        Select Case True
            ' 触发Check POP date的情况
            Case InStr(cellText, "POP DATE INSERTED") > 0 Or hasDatePOPDiff
                ws.Cells(i, "B").Value = "Check POP date"
            ' 触发ok的情况:匹配指定POP文本,或无POP相关内容
            Case InStr(cellText, "POP SAME AS IN CDAX / POP DIFFERS FROM CDAX") > 0 _
                 Or InStr(cellText, "POP SAME AS IN CDAX") > 0 _
                 Or Not hasPOP
                ws.Cells(i, "B").Value = "ok"
            ' 其他未覆盖的POP相关内容(可选自定义)
            Case Else
                ws.Cells(i, "B").Value = "Unknown"
        End Select
    Next i
End Sub

代码说明

  1. 通用适配:通过lastRow自动获取A列最后一行数据,支持任意行数的A1:An范围
  2. 大小写兼容:将单元格文本转为大写后匹配,避免因大小写不一致导致的判断错误
  3. 带日期POP判断:通过检查文本中是否同时存在POP differs from CDAX和数字(日期的典型特征)来识别带日期的场景
  4. 逻辑优先级:先判断Check POP date的触发条件,再处理ok的场景,确保规则执行顺序正确

示例验证

假设A列数据如下:

A1: POP same as in CDAX / POP differs from CDAX
A2: POP date inserted
A3: 2024-06-15 POP differs from CDAX
A4: Order completed without issues

运行代码后B列结果:

B1: ok
B2: Check POP date
B3: Check POP date
B4: ok

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:53:02