SetFocus无法在VBA Form Excel上运行

时间:2018-05-16 17:02:24

标签: excel vba focus userform setfocus

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

Form Image

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

  1. 扫描批量代码(标签:Etiqueta de Bulto)
  2. 然后,重点放在SKU文本标签
  3. 扫描每个SKU条形码
  4. 将信息发送到访问数据库。
  5. 我的问题在于,在我扫描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
    

    我真的会在这方面给你提供帮助。我需要这个应用程序才能完美地用于操作目的并减少错误。

    此致

2 个答案:

答案 0 :(得分:1)

假设条形码扫描器在每次成功扫描时自动附加 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

答案 1 :(得分:0)

请使用与此类似的代码:

  DateCutoff  Delta  A_PaymentAmount  A_DocumentNumber
0 2017-01-01      0           611.37                 4
0 2017-01-01      1           301.37                 2
0 2017-01-01      2           271.00                 1
0 2017-01-02      0           301.37                 2
0 2017-01-02      1           271.00                 1
0 2017-01-03      0           271.00                 1