excel - TextBox SetFocus 不适用于 VBA 表单 Excel
问题描述
我有一个简单的表格,我打算用它来审核我工作中的分拣站。它非常简单,看起来像这样:
.
问题:我正在使用手持式扫描仪 (Symbol LI4278) 扫描特定批量中包含的每个 SKU 的条形码。程序很简单:
- 扫描批量代码(标签:Etiqueta de Bulto)
- 然后,焦点落在 SKU 文本标签上
- 扫描每一个 SKU 条码
- 将信息发送到访问数据库。
我的问题在于,在我扫描 SKU 条形码后,焦点不会返回到文本标签 (T4) 以继续扫描 (SKU TEXT LABEL = T4),除非我点击一次 TAB。我需要这是自动的,并且 setfocus 属性不起作用。
这是我的代码:
Private Sub txtSKU_Change()
Application.EnableEvents = False
txtBulto.Locked = True
If Len(Me.txtSKU.Value) = 13 Then
Me.L1.ColumnCount = 3
Me.L1.AddItem Me.txtBulto.Value
Me.L1.List(L1.ListCount - 1, 1) = Me.txtSKU.Value
Me.L1.List(L1.ListCount - 1, 2) = Me.txtAuditor2.Value
End If
txtSKU.SetFocus
Application.EnableEvents = True
End Sub
我非常感谢您在这方面的帮助。我需要这个应用程序完美地用于操作目的并减少错误。
问候
解决方案
假设条形码扫描仪在每次成功扫描时自动附加一个Enter,您只需在 KeyDown 事件中捕获该 Enter 并替换为 KeyCode 0。
尝试评论您的txtSKU_Change
Sub 并在下面附加以进行测试:
Private Sub txtSKU_Change()
Dim sValue As String
With Me.txtSKU
sValue = WorksheetFunction.Trim(.Value)
If Len(sValue) = 13 Then
With Me.L1
.AddItem Me.txtBulto.Value
.List(.ListCount - 1, 1) = sValue
.List(.ListCount - 1, 2) = Me.txtAuditor2.Value
End With
.Value = vbNullString
End If
End With
End Sub
Private Sub txtSKU_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then KeyCode = 0 ' Rejects Enter Key
End Sub
推荐阅读
- javascript - 如何使用 JS 从 HTML 的头部获取位于 iframe 内的 divID?
- python - 无法使用 pip 安装 python-Levenshtein
- python - 在 GANS 中为生成器制作自定义损失函数时出错
- android-10.0 - 限制在安卓设备上获取 10+ 版本的 IMEI 号码,还有其他可用的唯一号码吗?
- javascript - 将 EXE 转换为 APK 时,我该如何处理 DLL 和 MANIFEST 文件?
- javascript - Angular,如何跟踪地图
() 修改? - python - Django-ValueError:信号仅在主线程中有效
- f# - 避免迭代的最佳方法
- r - Pass list of values to Shiny checkbox
- python - 对使用 Q-learning 在批量梯度下降中使用 dropout 感到困惑