Excel 条码扫描器自动提交

Excel 条码扫描器自动提交,excel,vba,Excel,Vba,我已经有了一个条形码扫描仪VBA功能,可以识别条形码编号,但我遇到的问题是每次都必须单击“输入”,是否有任何方法可以自动执行该操作并将计数存储在特定列中?目前,如果我输入存储在B列中的相同值,它将计算C列中的记录,但我希望避免每次都按enter键 这就是我目前得到的 Private Sub btnAdd_Click() Dim TargetCell As Range If WorksheetFunction.CountIf(Sheets("Sheet1").Columns(2), TextBox

我已经有了一个条形码扫描仪VBA功能,可以识别条形码编号,但我遇到的问题是每次都必须单击“输入”,是否有任何方法可以自动执行该操作并将计数存储在特定列中?目前,如果我输入存储在B列中的相同值,它将计算C列中的记录,但我希望避免每次都按enter键

这就是我目前得到的

Private Sub btnAdd_Click()
Dim TargetCell As Range
If WorksheetFunction.CountIf(Sheets("Sheet1").Columns(2), TextBox1.Value) = 1 Then
    Set TargetCell = Sheets("Sheet1").Columns(2).Find(TextBox1.Value, , xlValues, xlWhole).Offset(0, 1)
    TargetCell.Value = TargetCell.Value + 1
Else
    MsgBox "Code not found"
End If
Me.Hide
End Sub

很难说你有什么。例如,谁按下按钮?或者,您的扫描仪是否输入退货。我认为下面的代码在任何情况下都应该有效。请试一试

Private Sub TextBox1_Change()

    Dim TargetCell As Range
    Dim Qty As Long

    With TextBox1
        If Len(.Value) = 3 Then
            Set TargetCell = Worksheets("Sheet1").Columns(2) _
                            .Find(.Value, , xlValues, xlWhole)
            If TargetCell Is Nothing Then
                MsgBox """" & .Value & """ Code not found"
            Else
                With TargetCell.Offset(0, 1)
                    Qty = .Value + 1
                    .Value = Qty
                End With
                Application.EnableEvents = False
                TextBox1.Value = "Count = " & Qty
                Application.EnableEvents = True
            End If

            .SelStart = 0
            .SelLength = Len(.Value)
        End If
    End With
End Sub
我认为您有一个用户表单,在这个表单中有一个名为
TextBox1
的文本框。如果是这样,代码应该在用户表单的代码模块中。如果工作表中有文本框,请将代码粘贴到文本框所在工作表的“代码”模块中

现在,如果Len(.Value)=3,则需要调整这行代码
,以确定何时处理数据。这是因为只要输入一个字符,更改事件就会发生。我测试了3个字符。将数字更改为与扫描的数字长度相等的值。理论上,这仍然会使扫描仪可能发送的CR挂起。如果这导致出现问题,请在我的代码中用>=代替=


该代码会将扫描添加到现有数量中,就像您所做的那样,并在文本框中指示新的总数,以防您感兴趣。您可以将其替换为“OK”。代码将选择它输入的文本。因此,当您输入其他内容(如新扫描)时,它将被重写,而无需额外单击。

什么会触发事件?为什么不使用
Workbook\u SheetChange
?事件将由一个按钮触发,因此几乎可以单击该按钮,它将打开用户提示,然后持续扫描。您可以将扫描仪配置为在每次扫描后插入[Enter]吗?大多数条形码扫描仪都有此可配置设置。您是在工作表的特定单元格中扫描还是在文本框中扫描?