创建一个用户表单来比较 4 个扫描的项目

Creating a Userform to compare 4 scanned items

如果这看起来很简单,我深表歉意。我是 VBA 的新手,正在努力确定从哪里开始。

我正在尝试创建一个用户表单,您可以在其中扫描一个样本,然后扫描 3 个应该与第一个样本匹配的试管,如果匹配,它会将数据发送到电子表格,如果不匹配,则它会突出显示红色并让您重新启动。

我 运行 遇到了一些问题。我不确定如何在扫描第一个样本后自动进入下一个文本框。为了便于使用,我希望用户能够在不与电子表格交互的情况下扫描、扫描、扫描、扫描。

我还尝试通过放入 If/Else 语句来使用 AutoTab 功能,说明如果文本框的值不为空,它将自动跳格到选项卡索引中的下一个框,但是这似乎不起作用

如果您有任何建议,请告诉我。

基本上,条形码扫描器的输入与人工输入数据相同——只是所有字符一次出现(就像粘贴一样)。通常,扫描器应该能够发送一些 End-sign,在这种情况下你应该没问题,因为 TAB 或 ENTER 会自动跳转到下一个字段。

如果扫描仪真的发送了数据,你必须处理Change-文本框的事件并检查数据是否有效。以下示例检查 8 个字符的长度。根据您的需要调整 CheckBarcodeInput。如果输入了有效的条形码,焦点将设置到下一个文本框。

Private Sub TextBox1_Change()
    If CheckBarcodeInput(Me.TextBox1.Text) Then Me.TextBox2.SetFocus
End Sub

Private Sub TextBox2_Change()
    If CheckBarcodeInput(Me.TextBox2.Text) Then Me.TextBox3.SetFocus
End Sub
(...)    

Private Function CheckBarcodeInput(s As String) As Boolean
    ' Check if barcode is valid. In this example, it simply checks the length.
    If Len(s) >= 8 Then CheckBarcodeInput = True
End Function