Как предотвратить перемещение курсора в следующее текстовое поле при нажатии клавиши Enter?

#excel #vba #keypress

#excel #vba #нажатие клавиши

Вопрос:

Я хочу запретить перемещение курсора в следующее текстовое поле, когда текстовое поле пустое и нажата клавиша Enter. Предположим, у меня есть два текстовых поля, Textbox1 и Textbox2, и я хочу, чтобы до тех пор, пока я ничего не введу в Textbox1, это не позволяло перемещать курсор из Textbox1 в Textbox2 при нажатии клавиши enter. Но это должно позволять перемещать курсор вручную с помощью мыши или клавиш со стрелками. Надеюсь, это все объясняет. Я попробовал следующее,

 Private Sub txtCode_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    If Trim(Me.txtCode) = "" And KeyCode = 13 Then
        Me.txtCode.SetFocus
    End If

End Sub
  

Но ничего хорошего

Ответ №1:

Вы были близки. Попробуйте следующее:

 Private Sub txtCode_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   If Trim(Me.txtCode) = "" And KeyCode = 13 Then
       KeyCode = 0
   End If
End Sub
  

Установка ключевого кода в 0 эффективно отменяет нажатие клавиши.

Комментарии:

1. Спасибо. Это то, что мне было нужно.