как сохранить setfocus в текстовом поле - vba excel

Я новичок в VBA, сначала у меня есть userform, textbox1 и commandbutton1. У меня проблема, когда я ввожу или нажимаю Tab в textbox1, я хочу, чтобы текстовое поле 1 оставалось в setfocus, но оно щелкнуло commandbutton1.

У меня есть код ниже:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
    If KeyCode = 13 Then
        TextBox1.SetFocus
    End If
End Sub

и какой код VBA закрывает userform1, когда я нажимаю «F4» на клавиатуре? благодарю вас...


person Tomz    schedule 30.11.2013    source источник


Ответы (2)


Измените код с

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
    If KeyCode = 13 Then
        TextBox1.SetFocus
    End If
End Sub

to

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
    '~~> 13 is for Enter, 9 is for Tab
    If KeyCode = 13 Or KeyCode = 9 Then
        KeyCode = 0
    End If
End Sub

и какой код VBA закрывает userform1, когда я нажимаю "F4" на клавиатуре

См. ЭТО. Этот поток предназначен для клавиши Esc. Измените его на F4

РЖУ НЕ МОГУ. Это одна из ваших тем.

person Siddharth Rout    schedule 30.11.2013

В зависимости от того, что вам нужно сделать, вам может не понадобиться никакого кода; попробуйте установить для свойства TabKeyBehavior текстового поля значение True. Если вы сделаете это, нажатие клавиши Tab вводится как текст, а не перемещает фокус на следующий элемент управления в форме.

То же самое можно сделать со свойством EnterKeyBehavior текстового элемента управления.

person Steve Rindsberg    schedule 30.11.2013