等待数据输入然后运行sub。

时间:2017-07-13 19:45:02

标签: excel vba excel-vba

我需要一个非常简单的系统,每次扫描时都会将条形码保存到工作表中。它工作得很好,但我必须在每次扫描之间单击一个cmd按钮或按Enter键。有没有可以在文本框更改后使用执行?但是,如果我使用     Private Sub txtCode_Change() 作为标题,它只需要第一个数字的代码并使用它而不是等待.25秒,其余的条形码被估算。任何想法或帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以将条形码扫描器配置为在扫描的条形码后发送 Enter Tab 键。

  • 如果您的扫描仪发送 Tab 键,您可以使用TextBox_AfterUpdate事件:

    Private Sub txtCode_AfterUpdate()
        'Do something.
    End Sub
    
  • 如果您的扫描仪发送 Enter 键,则可以使用TextBox_KeyDown事件:

    Private Sub txtCode_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
                                ByVal Shift As Integer)
        If KeyCode = vbKeyReturn Then
            'Do something.
        End If
    End Sub
    
  • 如果您的条形码是固定长度的字符串,您仍然可以使用TextBox_Change事件,如下所示:

    Private Const BARCODE_LENGTH As Integer = 12
    
    Private Sub txtCode_Change()
        If Len(txtCode.Text) = BARCODE_LENGTH Then
            'Do something
        End If
    End Sub
    

希望有所帮助。