Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2013, 22:30   #1
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию Запрет ввода в TextBox букв и . (точки) / Или автозамена точки на запятую

Доброго времени суток!
Пытаюсь разобраться с запретом ввода букв.
вот код:
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) "Нельзя вводить буквы и точку".
Или с точкой как вариант автозамена на запятую.
uralshans вне форума Ответить с цитированием
Старый 29.08.2013, 22:34   #2
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию

Дополнение:
В этом коде: ввод запятой возможен только после ввода цифр; ввод точки и букв ЗАПРЕЩЕН!
НО как только переключаешься на RU раскладку, даже жмякая на клавиши букв вылетает ошибка. Почему?
uralshans вне форума Ответить с цитированием
Старый 29.08.2013, 22:42   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Смотрите вот это Kак позволить вводить в TextBox только цифры
Там же найдете и многое другое
ps
Оформляйте публикуемый код тегами CODE, так намного читабельнее, да и в правилах форума это есть.
Выделите код и нажмите "решетку" в меню ввода сообщения
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 29.08.2013 в 22:56.
VictorM вне форума Ответить с цитированием
Старый 29.08.2013, 23:02   #4
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию

про CODE спасибо! буду знать!
uralshans вне форума Ответить с цитированием
Старый 30.08.2013, 00:24   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

функция Chr принимает в качестве параметра число от 0 до 255
а коды русских букв больше 255, - потому и ошибка

Используйте вместо неё функцию ChrW, - и проблем не будет
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет ввода букв Евгений Уральский 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