2015-08-18 3 views
0

Я использую пользовательскую форму с несколькими текстовыми полями. Мне было интересно, есть ли способ заставить пользователя ввести минимальное значение или выше, прежде чем переходить к следующему текстовому полю.Установка минимального значения в текстовое поле

Спасибо большое,

+0

Посмотрите на события TextBox1_KeyDown или Keypress. В этом случае вы можете проверить значение другого текстового поля и залог, если он не был установлен. – MatthewD

ответ

0

Если предположить, что один из ваших текстовых полей называется TextBox1 вы можете поместить этот код в UserForm:

Option Explicit 

Dim blnClosing As Boolean 

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) 

     If blnClosing = False Then 

       Dim iVal As Integer 
       Dim minVal As Integer 

       minVal = 10 'Change to your needs 

       'Test for numeric characters 
       On Error Resume Next 
       iVal = CInt(Me.TextBox1.Value) 

       'If characters are not numeric 
       If Err.Number = 13 Then 
         MsgBox "Value must be numeric!", vbCritical, "Incorrect Value" 
         Me.TextBox1.Text = vbNullString 
         Cancel = True 'Retain focus on the textbox 
         Exit Sub 
       End If 

       'Reset error handling to normal 
       On Error GoTo 0 

       'Check if textbox value is less than the minimum 
       If Me.TextBox1.Value < minVal Then 
         MsgBox "Value must be greater than " & minVal & "", vbCritical, "Incorrect Value" 
         Me.TextBox1.Value = vbNullString 
         Cancel = True 'Retain focus on the textbox 
       End If 
     End If 
End Sub 

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
     blnClosing = True 
End Sub 

Я взял на себя смелость проверки числового значения, а также, так как вы спрашиваете, требуется ли значение в текстовом поле быть числовым. Если это не так, удалите строки кода из комментария 'Test for numeric characters до строки On ErrorGoTo 0.

Глобальная переменная blnClosing позволяет нам пропустить код при закрытии формы. Если это не было включено, и пользователь нажал «X» в верхнем правом углу формы с недопустимыми данными (пробел, меньше минимального или нечислового), тогда появятся сообщения.