返回列表 上一主題 發帖

[發問] 請教TextBox輸入錯誤如何回到原位置

[發問] 請教TextBox輸入錯誤如何回到原位置

請教各位先進:
TextBox1輸入錯誤跳出MsgBox提示視窗後要如何回到TextBox1重新輸入
            MsgBox "輸入錯誤"
            TextBox1 = ""
            TextBox1.SetFocus
使用SetFocus失敗焦點會跳到TextBox2
使用Application.SendKeys "{up}"經常會造成NumLook關閉
  1. Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  2.     If KeyCode = 13 And TextBox1 > "" Then
  3.         Dim Rng As Range
  4.         Dim ax As Variant
  5.         Dim bx As String
  6.         Set Rng = Sheets("data").[K1:L24]
  7.         bx = TextBox1.Text
  8.         ax = Application.VLookup(bx, Rng, 2, 0)
  9.         If Not IsError(ax) Then
  10.             Label4 = ax
  11.         Else
  12.             MsgBox "輸入錯誤"
  13.             TextBox1 = ""
  14.             Application.SendKeys "{up}"
  15.             Exit Sub
  16.         End If
  17.     End If
  18. End Sub
複製代碼

暫時先用全域變數來解決
  1. Dim bCancel As Boolean

  2. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  3. Cancel = bCancel
  4. bCancel = False
  5. End Sub
複製代碼

TOP

謝謝2位大大解說
使用KeyCode = True可以正常執行W7+2013
感謝

            MsgBox "輸入錯誤"
            KeyCode = True
            TextBox1.SelStart = 0
            TextBox1.SelLength = Len(TextBox1)

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題