2016-08-25 5 views
1
Private Sub ROLparameter_Click() 
Line1: RolLow = InputBox("Please enter the lower bound percentage for ROL calculation between 0 and 100 (initially " & RolLow * 100 & "%):") 

If Not 0 <= RolLow <= 100 Then GoTo Line1 
End If 

End Sub 

У меня есть кнопка формы пользователя, когда я нажму, она войдет в этот суб. Проблема в том, что она дает ошибку "end if without if". Когда я удаляю конец, если он работает странно.Пользовательская форма VBA не распознает функцию?

Такие как;

он распознает значение RolLow, когда пользователь вводит 80, как «80». Если это не направляет его на конец sub, если я использую только «if», тогда он будет направлять на строку 1 все время. Нет проверки значения.

Этот код работает нормально в модуле.

В чем может быть проблема?

(переменные определены общественности перед подводными лодками)

(я пытался module.variable вещь также)

+0

попробовать код в мой ответ ниже –

ответ

0

Это код, который вы пытаетесь запустить: , если пользователь вводит значение меньше 0 или больше, чем 100, а затем вернуться к InputBox

Private Sub ROLparameter_Click() 

Line1: Rollow = CLng(InputBox("Please enter the lower bound percentage for ROL calculation between 0 and 100 (initially " & Rollow * 100 & "%):")) 

If Not ((0 <= Rollow) And (Rollow <= 100)) Then 
    GoTo Line1 
End If 

End Sub 
+0

Спасибо большое! Что такое CLng? Я хочу учиться :) – hakandeep

+0

'CLng' преобразует вход (полученный как String) в Long, вы можете использовать также' CInt', если хотите меньшие значения –

+0

Еще раз спасибо! – hakandeep

Смежные вопросы