![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.12.2012
Сообщений: 66
|
![]()
Доброго времени суток!
Пытаюсь разобраться с запретом ввода букв. вот код: Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim s$ s = TextBox1.Text If IsNumeric(Chr(KeyAscii)) Then ElseIf KeyAscii = 46 Or KeyAscii = 44 Then KeyAscii = 44 '44, 46 - запятая или точка, согласно национальным настройкам системы If InStr(s, Chr(KeyAscii)) > 1 Then KeyAscii = 0 'запрет повторения разделителя If Len(s) = 0 Then KeyAscii = 0 'запрет лидирующего разделителя 'If InStr("0123456789,", Chr(KeyAscii)) = 0 Then KeyAscii = 0 ' запрет букв Else KeyAscii = 0 End If End Sub Все работает хорошо на Английской раскладке. Но на русской при нажатии на клавиши "Б" и "Ю" выдает ошибку. Как быть? Может есть варианты проще? Цель: Можно вводить в ТекстБокс1 только Цифры и Только запятую. Если человек начинает вводить буквы или ставить точку то высвечивается Окно Ошибки (Msgbox) "Нельзя вводить буквы и точку". Или с точкой как вариант автозамена на запятую. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 26.12.2012
Сообщений: 66
|
![]()
Дополнение:
В этом коде: ввод запятой возможен только после ввода цифр; ввод точки и букв ЗАПРЕЩЕН! НО как только переключаешься на RU раскладку, даже жмякая на клавиши букв вылетает ошибка. Почему? ![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
Смотрите вот это Kак позволить вводить в TextBox только цифры
Там же найдете и многое другое ps Оформляйте публикуемый код тегами CODE, так намного читабельнее, да и в правилах форума это есть. Выделите код и нажмите "решетку" в меню ввода сообщения
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 Последний раз редактировалось VictorM; 29.08.2013 в 22:56. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.12.2012
Сообщений: 66
|
![]()
про CODE спасибо! буду знать!
|
![]() |
![]() |
![]() |
#5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
функция Chr принимает в качестве параметра число от 0 до 255
а коды русских букв больше 255, - потому и ошибка Используйте вместо неё функцию ChrW, - и проблем не будет |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрет ввода букв | Евгений Уральский | Microsoft Office Excel | 19 | 19.09.2012 12:06 |
Деление на ноль и запрет ввода букв | sunnyws | Microsoft Office Word | 2 | 10.06.2011 14:20 |
Запрет ввода с клавиатуры букв | Omedus | Общие вопросы Delphi | 13 | 16.05.2010 14:39 |
Как сделать запрет ввода букв в поле для ввода input | zvezda_t | PHP | 1 | 27.12.2009 22:02 |
Замена точки на запятую | SIV84 | Microsoft Office Excel | 1 | 11.01.2009 11:16 |