我正在使用输入框从用户那里获取一个数字。我想避免不允许输入,并且卡住负数。应该处理的唯一输入是1到500之间的整数。我不明白为什么-1仍然被触发。到目前为止,这是我的代码:
LBefore = InputBox("lines?", "", ">>> insert number <<<", 11660, 9540)
Select Case StrPtr(LBefore)
Case 0
'Cancel pressed
Exit Sub
Case Else
If (LBefore <> "") Then
'Check for numeretical value
If IsNumeric(LBefore) Then
cijfer = Abs(CByte(LBefore))
'Check to see if value is in allowed range
If (cijfer >= 1) And (cijfer <= 500) Then
'do stuff ...
end If
End If
End If
End Select
答案 0 :(得分:3)
因为您使用cijfer = Abs(CByte(LBefore))
而触发了它
Abs
是绝对函数,因此负数变为正数!
尝试使用cijfer = CInt(LBefore)
。