Оператор множественного условия IF для перехода к следующей пользовательской форме

#vba

#vba

Вопрос:

Идея состоит в том, чтобы иметь пользовательскую форму с двумя текстовыми полями, одно для меньшего числа (текстовое поле.10) и одно для большего числа (текстовое поле.11).

Когда пользователь вводит эти значения, он / она переходит к следующей пользовательской форме.

Оба числа должны находиться в диапазоне 0-100, и меньшее число должно быть меньше, чем большее.

 If TextBox10.Value <= 0 Or TextBox10.Value >= 100 Or TextBox10.Value >= TextBox11.Value Or TextBox11.Value <= 0 Or TextBox11.Value >= 100 Then

    MsgBox "Error!" amp; vbCrLf amp; "Instructions: Both numbers must be higher than 0 and less than 100" amp; vbCrLf amp; "Additionally, lower number cannot be higher than higher number and vice versa!" amp; vbCrLf amp; "Try again!"

    Exit Sub
       
Else
    UserForm4.Show
     
End If
 

Комментарии:

1. Примечание TextBox10.Value перезапускает строку, а не число. Вам нужно преобразовать его с CLng() помощью or CDbl() .

Ответ №1:

Итак, это был правильный код:

 If IsNumeric(TextBox10.Value) And _
   IsNumeric(TextBox11.Value) And _
   Val(TextBox10.Value) > 0 And _
   Val(TextBox10.Value) < 101 And _
   Val(TextBox11.Value) > 0 And _
   Val(TextBox11.Value) < 101 And _
   Val(TextBox10.Value) <= Val(TextBox11.Value) Then
  
    UserForm4.Show
Else
    MsgBox "Error!" amp; vbCrLf amp; "Instructions: Both numbers must be higher than 0 and less than 100" amp; vbCrLf amp; "Additionally, lower number cannot be higher than higher number and vice versa!" amp; vbCrLf amp; "Try again!"
    Exit Sub
End If
 

Ответ №2:

Попробуйте это (не проверено)

 If IsNumeric(TextBox10.Value) And _
   IsNumeric(TextBox11.Value) And _
   Val(TextBox10.Value) > 0 And _
   Val(TextBox10.Value) < 100 And _
   Val(TextBox10.Value) <= Val(TextBox11.Value) Then
  
    UserForm4.Show
Else
    MsgBox "Error!" amp; vbCrLf amp; "Instructions: Both numbers must be higher than 0 and less than 100" amp; vbCrLf amp; "Additionally, lower number cannot be higher than higher number and vice versa!" amp; vbCrLf amp; "Try again!"
    Exit Sub
End If
 

Комментарии:

1. Спасибо, приятель, это сработало, я внес некоторые изменения, как показано ниже, но ваша идея была правильной!