Делаю форму для занесения телефонного номера в определенном формате из TextBox формы в активную ячейку в диапазоне C4:C500 листа Такая последовательность действий 1)Вызываем форму даблкликом в ячейке диапазона листа 2)Форма вызывается, при вызове в TextBox формы уже прописано как будет выглядеть образец записи в активную ячейку При этом фокус курсора находится в TextBox
Код
Private Sub UserForm_Activate()
ZVI_SetFormPosition Me ' <-- Привязка формы к активной ячейке
TextBox1.Value = "+7(###)###-##-##" 'в TextBox1 светится при активации формы как будет выглядеть тел номер после занесения в активную ячейку
'TextBox1.SetFocus = False 'снимаем фокус с TextBox1 формы ВОТ ЭТА КОМАНДА НЕ КАТИТ
End Sub
Здесь Надо вывести курсор из активного состояния в TextBox Пробую выше в коде TextBox1.SetFocus = False 'снимаем фокус с TextBox1 формы - не прокатывает
3)Далее по событию
Код
Private Sub TextBox1_Change()
'TextBox1.SetFocus = 'устанавливаем фокус в TextBox1 формы
'TextBox1.Value = "" 'стираем предыдущее значение
'TextBox1.Value = "+7" 'заносим автоматом значение +7 для последующего ввода 10 цифр телефонного номера
Как снять фокус с TextBox1 формы ? 'TextBox1.SetFocus = False не работает Пример во вложении
И как еще правильно условие прикрутить допустим так на старт формы
Код
Private Sub UserForm_Activate()
ZVI_SetFormPosition Me ' <-- Привязка формы к активной ячейке
TextBox1.Value = "+7(###)###-##-##" 'в TextBox1 светится при активации формы как будет выглядеть тел номер после занесения в активную ячейку
CommandButton3.SetFocus 'устанавливаем фокус CommandButton3 и снимаем фокус с TextBox1 формы
End Sub
и само условие чегото не сработало
Код
Private Sub TextBox1_Change()
If CommandButton3.SetFocus = True Then
TextBox1.Value = "+7(###)###-##-##"
Else
TextBox1.Value = "+7"
End If
Ну да, это как при беге на стадионе догнать себя и укусить за правое ухо... Как же может быть фокус на кнопке, если Вы проверяете изменение в TextBox?! Если срабатывает *TextBox1_Change*, значит, фокус в этом элементе. Непонятно, зачем эта проверка. И похоже, что вопрос выходит за рамки темы.
При активации формы не нужно фокусировать, достаточно элементу присвоить приоритетный TabIndex. И не в коде, а в параметрах.
Понял что ранее неправильно сделал а сейчас так По условию активации формы и переноса фокуса на CommandButton3 все работает В TextBox1 требуемое значение и фокус на CommandButton3 - в TextBox1 фокуса нет
Код
Private Sub UserForm_Activate()
ZVI_SetFormPosition Me ' <-- Привязка формы к активной ячейке
TextBox1.Value = "+7(###)###-##-##" 'в TextBox1 светится при активации формы как будет выглядеть тел номер после занесения в активную ячейку
CommandButton3.SetFocus 'устанавливаем фокус CommandButton3 и снимаем фокус с TextBox1 формы
End Sub
Сейчас при перенесении фокуса в TextBox1 значение TextBox1.Value должно изменится на TextBox1.Value = "+7" Если далее сделать просто без условий
Код
Private Sub TextBox1_Change()
TextBox1.Value = "+7"
End Sub
тоже не помогает - сразу при активации формы TextBox1.Value прыгает в "+7"
Private Sub TextBox1_Change()
If Len(TextBox1.Text) = 10 Then
TextBox1.Text = "+7" & Format(TextBox1.Text, "(000) 000 00 00")
End If
'TextBox1.SetFocus = 'устанавливаем фокус в TextBox1 формы
'TextBox1.Value = "+7" 'заносим автоматом значение +7 для последующего ввода 10 цифр телефонного номера
'
End Sub