#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()
помощью orCDbl()
.
Ответ №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. Спасибо, приятель, это сработало, я внес некоторые изменения, как показано ниже, но ваша идея была правильной!