Страницы: 1
RSS
Запретить вводить первым знаком запятую в textbox
 
Доброго времени суток, прошу подсказать как сделать проверку в коде, что если первый знак это запятая, то ввод символа бы отменялся.
Код
‘Контроль ввода в TextBox  только цифры (Автор – EducatedFool)  
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    txt = Me.TextBox1    ' читаем текст из поля (для недопущения ввода двух и более запятых)
    If InStr(1, txt, ",") > 0 And Len(txt) - InStr(1, txt, ",") = 2 Then KeyAscii = 0  ' только 2 цифры после запятой
    Select Case KeyAscii
        Case 8:    ' нажат Backspace - ничего не делаем
        Case 44: KeyAscii = IIf(InStr(1, txt, ",") > 0, 0, 44)    ' если запятая уже есть - отменяем ввод символа
        Case 46: KeyAscii = IIf(InStr(1, txt, ",") > 0, 0, 44)    ' заменяем при вводе точку на запятую
        Case 48 To 57    ' если введена цифра  - ничего не делаем
        Case Else: KeyAscii = 0    ' иначе отменяем ввод символа
    End Select
End Sub
Изменено: bastakr - 22.04.2021 10:46:30
 
Можно так, вводите в ячейку A1 значение, если начинается с запятой будет высвечиваться сообщение
 
Прошу прощения, не увидел, что надо в TextBox
Попробуйте так:
Код
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If InStr(1, TextBox1.Value, ",") = 1 Then TextBox1.Value = ""
End Sub
 
Цитата
msi2102: If InStr(1, TextBox1.Value, ",") = 1 Then
покороче: If TextBox1.Value Like ",*" Then
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
покороче: If TextBox1.Value Like ",*" Then
Согласен, на целых 4 символа  :D
Думаю нужно ещё сократить If TextBox1 Like ",*" Then
Изменено: msi2102 - 22.04.2021 16:12:16
 
msi2102, просто я ведущие и/или хвостовые всегда только Like'ом проверяю  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
bastakr написал:
как сделать проверку в коде, что если первый знак это запятая, то ввод символа бы отменялся
А для чего вам такая проверка? На действительно нужный контроль ввода данных она не влияет. Только шашечки... Без ехать.
 
Jack Famous, Мне кажется не всем, кто задает здесь вопросы, будет понятен Like.
 
Цитата
msi2102: не всем, кто задает здесь вопросы, будет понятен Like
также как и InStr и вообще всё остальное - шо его там понимать  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал: шо его там понимать
Согласен, но у ТС в примере уже есть InStr, а значит ничего дополнительно объяснять не придется  :D  
 
msi2102, не обратил внимания
Ну не факт, что ТС знает, что и как работает, если на то пошло))
А так да
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:  msi2102 , не обратил внимания
что это
Цитата
RAN написал: Только шашечки... Без ехать.
:cry:  :cry:
 
msi2102, спасибо.
Страницы: 1
Наверх