TextBox SetFocus 不适用于 VBA 表单 Excel

TextBox SetFocus not working on VBA Form Excel

我有一个简单的表格,我打算用它来审核我工作中的分拣站。它非常简单,看起来像这样:

.

问题:我正在使用手持式扫描仪 (Symbol LI4278) 扫描特定批次中包含的每个 SKU 的条形码。程序很简单:

  1. 扫描批量二维码(标签:Etiqueta de Bulto)
  2. 然后,焦点落在 SKU 文本标签上
  3. 扫描每个 SKU 条码
  4. 将信息发送到访问数据库。

我的问题在于,在我扫描 SKU 条形码后,焦点不会 return 到文本标签 (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

请使用类似这样的代码:

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
            ByVal X As Single, ByVal Y As Single)

   If UserForm1.ActiveControl.Name = "List1" Then
   UserForm1.TextBox1.SetFocus
   End If

End Sub