创建一个用户表单来比较 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
如果这看起来很简单,我深表歉意。我是 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