2016-08-18 31 views
-1

我不得不循环一条消息,如果myValue = 0 or myValue > nbRiskmyValue > 0 and <= nbRisk我继续 为为例,如果我把myvalue的= 5,它循环一次,当我把 myvalue的= 10或11 ..它不循环 任何想法?VBA做-而2个值之间循环不工作

这是我的代码

Do While myValue = 0 or myValue > nbRisques 
myValue = InputBox (Enter number of risk"); 
loop 
For i=1 to myValue 
+0

什么是'nbRisques'的价值?它是否在运行之间改变? –

+0

我无法再现这种情况。你能向我们展示更多你的代码吗? –

+0

值nbRisques更改,但我发现我设置myValue作为字符串不是整数,不是没关系,但仍不明白为什么字符串适用于数字10以下,@MattCremeens谢谢 – BKChedlia

回答

0

首先,更改myValue是一个变体。

你的代码可以改为

Do While myValue = 0 Or myValue > nbrisques 
    myValue = InputBox("Enter level of Risk to assess") 
    If IsNumeric(myValue) Then 
     myValue = CInt(myValue) ' Using CInt on the assumption that you want an Integer 
    Else 
     myValue = 0 
    End If 
Loop 
1

尝试以下解决方法:

' define myValue as Long 
Dim myValue    As Long 

Do While myValue = 0 Or myValue > nbRisques 
    On Error GoTo InputBox_Err_Handler 
    myValue = InputBox("Enter level of Risk to assess") 

InputBox_Err_Handler: 
    If Err.Number <> 0 Then 
     MsgBox "Error, only Number format is allowed" 
    End If 
Loop 
+0

谢谢先生,它的工作:) – BKChedlia