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