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

Excel VBA 如何为A列自动生成序列号代码添加B列判断条件

实现方案

要实现仅在B列手动输入公司名称时才生成A列序列号,推荐直接绑定工作表变更事件实现自动触发,无需手动运行宏,完整代码和说明如下:

完整实现代码

右键你要生效的工作表标签,点击「查看代码」,粘贴以下代码即可:

Option Explicit

' 工作表单元格内容变更时自动触发
Private Sub Worksheet_Change(ByVal Target As Range)
    ' ========== 你需要的B列关联判断条件 开始 ==========
    ' 仅当修改的是B列单元格、仅修改1个单元格、且输入内容非空时才继续执行
    If Target.Column <> 2 Or Target.CountLarge > 1 Or Trim(Target.Value) = "" Then Exit Sub
    ' 额外增加重复生成校验:对应行A列已经有序号时不覆盖
    If Target.Offset(0, -1).Value <> "" Then Exit Sub
    ' ========== 你需要的B列关联判断条件 结束 ==========

    ' 原有序列号生成逻辑(已调整为写入B列输入行对应的A列)
    Dim lastCell As Range
    Set lastCell = Cells(Rows.Count, "A").End(xlUp)
    If lastCell.Value = "Request #" Then
        Target.Offset(0, -1).Value = "ART/QTN001"
        Exit Sub
    End If
    Target.Offset(0, -1).Value = Left(lastCell, 7) & Format(Right(lastCell, 3) + 1, "000")
End Sub

如果你仅需要在原有子过程开头加判断

如果不需要自动触发,还是保留手动运行NewSerialNumber的模式,直接在原有代码开头加以下校验行即可:

' 校验下一行要生成序列号的位置对应的B列是否有输入内容
If Trim(Cells(Cells(Rows.Count, "A").End(xlUp).Row + 1, "B").Value) = "" Then Exit Sub

内容的提问来源于stack exchange,提问作者AHMED THAKAA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:15:05