Данный код позволяет выполнять проверку корректности ввода числового значения в текстовое поле (textbox) на форме,
автоматически блокируя ввод запрещенных символов
Используется событие KeyPress элемента управления TextBox
Допустимые символы: цифры от 0 до 9, точка (запятая автоматически заменяется на точку), знак «минус» (перед числом)
Предполагается, что текстовое поле имеет имя TextBox_Multiplier
Private Sub TextBox_Multiplier_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) On Error Resume Next Select Case KeyAscii Case 48 To 57, 8 ' цифры 0 - 9 и <Backspace> (эти символы всегда разрешены) Case 44, 46 ' обработка десятичного разделителя (44 - код запятой, 46 - код точки) KeyAscii = 46 ' если в поле введена запятая, то заменим ее на точку If InStr(1, Me.TextBox_Multiplier.Text, ".") Then KeyAscii = 0 ' вторую точку нельзя Case 45 ' дефис (минус перед числом) If InStr(1, Me.TextBox_Multiplier.Text, "-") Then KeyAscii = 0 ' второй минус нельзя If Me.TextBox_Multiplier.SelStart Then KeyAscii = 0 ' минус допустим только перед числом Case Else KeyAscii = 0 ' остальные символы запрещены End Select End Sub
Комментарии
Огромнейшее спасибо за подсказку!!
Здравствуйте, Тимон
Для этого используются модули класса
Здесь есть пример кода: http://www.excel-vba.ru/chto-umeet-excel/rabota-s-modulyami-klassov/
а как этот макрос применить ко всем текстбоксам формы, и добавить проверку наличия введенных данных в текстбокс. для каждого конкретного прописывать довольно проблематично ввиду их большого количества
БОЛЬШОЕ спасибо
Отправить комментарий