#vba #textbox #setfocus
#vba #текстовое поле #setfocus
Вопрос:
После второго щелчка по текстовым полям я ничего не могу написать после нажатия кнопки «1». Setfocus работает только при первом щелчке (изображение). Вы можете помочь? Приветствия
Private activeTextbox As Control
Private Sub Textbox_sr_Enter()
Set activeTextbox = Controls("Textbox_sr")
End Sub
Private Sub CommandButton1_Click()
If Not activeTextbox Is Nothing Then
activeTextbox.Text = activeTextbox.Text amp; "1"
activeTextbox.SetFocus
End If
End Sub
Private Sub TextBox1_Enter()
Set activeTextbox = Controls("TextBox1")
End Sub
Private Sub TextBox2_Enter()
Set activeTextbox = Controls("TextBox2")
End Sub
Private Sub TextBox3_Enter()
Set activeTextbox = Controls("TextBox3")
End Sub
Комментарии:
1. Пожалуйста, попробуйте переместить текстовые поля непосредственно в форме. Я имею в виду, не каждый, если они находятся в другом фрейме… Или поместите их все в один фрейм.
2. Это важно для меня, потому что это выглядит очень красиво. Без этого он потеряет приятный внешний вид. Разве я не могу сделать это без перемещения текстовых полей?
3. Я не знаю. Я только предполагаю, что вы этого не делаете. Похоже, это ошибка Excel. Находясь во фрейме, события текстового поля перестают запускаться … Не только
Enter
один. Вот почемуactiveTextbox
элемент управления больше не обновляется. Но если ваша цель — быть «хорошим», вы можете создать такой псевдофрагмент, используя две метки. Основное сBorderStyleSingle
и без заголовка, а второе обычное, с сохранением только заголовка псевдокадра…4. Большое спасибо. Я думал об этом одну неделю, и это было безумием. Я попробую с вашей идеей. Приветствую! 🙂