vba - 创建一个用户表单来比较 4 个扫描的项目
问题描述
如果这看起来很简单,我很抱歉。我是 VBA 新手,正在努力确定从哪里开始。
我正在尝试创建一个用户表单,您可以在其中扫描样本,然后是 3 个应该与第一个样本匹配的试管,如果它们匹配,它将将该数据发送到电子表格,如果不匹配,那么它将突出显示红色和让你重新开始。
我遇到了一些问题。我不确定如何在扫描第一个样本后自动进入下一个文本框。为了便于使用,我希望用户能够在不与电子表格交互的情况下扫描、扫描、扫描、扫描。
我还尝试通过放入 If/Else 语句来使用 AutoTab 函数,说如果文本框的值不为空,它将 AutoTab 到选项卡索引中的下一个框,但这似乎不起作用
请让我知道您可能有的任何建议。
解决方案
基本上,条形码扫描仪的输入与有人手动输入数据相同 - 只是所有字符同时出现(就像粘贴一样)。通常,扫描仪应该能够发送一些结束符号,在这种情况下你应该没问题,因为 TAB 或 ENTER 会自动跳转到下一个字段。
如果扫描仪真的发送数据,则必须处理Change
文本框的 -Event 并检查数据是否有效。以下示例检查 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
推荐阅读
- python - 应用 dbscan 后如何提取点云?
- python - 如何将特定工作表的excel保存到另一个excel工作表python中
- javascript - 在 ajax 表、jsp 和 servlet 中显示数据
- sql-server - 想要突出显示组中的每一行
- django - Django ORM:如何计算具有相同属性的对象?
- java - 如何将 Maven 添加到路径变量 windows 10?
- c - 如何用空格交换矩阵中的特定字符
- javascript - 在 Bootstrap 5.0 的选择菜单中搜索
- c# - 使用鼠标按钮在 X 和 Y 轴上围绕玩家对象旋转相机
- ios - 如何在 iOS 的应用程序目录中创建目录?