Я предполагаю, что вы используете VBA UserForm
для ввода данных. Если пользователь записывает число в текстовое поле (скажем, TextBox1
), вы можете запретить ввод отрицательного числа (или чего-либо, кроме неотрицательного числа) с помощью Event Caller
:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46, 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub
Этот код разрешает ввод десятичного неотрицательного числа (с .
в качестве десятичного разделителя). Если в вашей стране (как у меня) вы используете для этого запятые, замените Case 46, 48 To 57
на Case 44, 48 To 57
.
После этого вам просто нужно беспокоиться о получении значения ввода.