Проверка ввода числа в текстовое поле на форме VBA
- Макросы VBA Excel
- Разное
- Проверка ввода
- Разное
|
Данный код позволяет выполнять проверку корректности ввода числового значения в текстовое поле (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
|