#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. Спасибо. Это то, что мне было нужно.