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

如何让宏在特定单元格持续输入内容时自动重复运行?

Excel宏自动触发问题解决(扫描条形码自动运行)

你的代码核心问题是事件判断逻辑写反了,再加上事件启用顺序不对,导致扫描条形码到A1时根本不会自动触发宏。直接看修改后的代码和说明:

第一步:修复工作表变更事件代码

把原worksheet_Change事件代码替换成下面的,注意这段代码必须放在对应工作表的代码模块里(右键工作表标签→查看代码):

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 仅当修改的是A1单元格时触发
    If Target.Address = "$A$1" Then
        ' 先关闭事件,避免修改A1时循环触发
        Application.EnableEvents = False
        ' 调用处理宏
        Call monday
        ' 恢复事件启用
        Application.EnableEvents = True
    End If
End Sub

第二步:优化monday宏的稳定性

原宏用了太多ActiveSheet和Select,容易出问题,改成下面的版本:

Sub monday()
    Dim barcode As String
    Dim rng As Range
    Dim emptyCell As Range
    Dim rownumber As Long
    
    ' 用Me代表当前工作表,比ActiveSheet更可靠
    barcode = Me.Cells(1, 1).Value
    If barcode <> "" Then
        ' 在B5:B500中查找条形码
        Set rng = Me.Range("B5:B500").Find(What:=barcode, _
            LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
            
        If rng Is Nothing Then
            ' 没找到则清空A1
            Me.Cells(1, 1).Value = ""
        Else
            rownumber = rng.Row
            ' 找到当前行A-E列的第一个空单元格,直接赋值时间,不用Select
            Set emptyCell = Me.Range(Me.Cells(rownumber, 1), Me.Cells(rownumber, 5)).Find("")
            If Not emptyCell Is Nothing Then
                emptyCell.Value = Time
                emptyCell.NumberFormat = "h:mm AM/PM"
            End If
            ' 清空A1准备下一次扫描
            Me.Cells(1, 1).Value = ""
        End If
    End If
    
    ' 定位到A1,方便下一次扫描
    Application.Goto Me.Range("A1"), True
End Sub

关键修改说明

  1. 事件判断逻辑修正:原代码写的是If Not Target.Address = ("A1"),意思是“修改的不是A1时才运行宏”,完全搞反了,改成If Target.Address = "$A$1"(Target.Address返回的是绝对引用,所以要用$A$1)。
  2. 事件启用控制:处理前先关闭Application.EnableEvents,因为monday宏里会清空A1,这又会触发Worksheet_Change事件,导致循环调用,处理完再恢复启用。
  3. 去掉不稳定的ActiveSheet/Select:用Me(代表当前工作表)代替ActiveSheet,避免切换工作表时出错;直接操作单元格对象,不用Select,减少意外问题。

内容的提问来源于stack exchange,提问作者Paige Hermann

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:32:54