我有一个名为“need”的变量,它被定义为一个整数。出现一个输入框并提示用户。如果他们输入一个整数,它会显示Msgbox“Got your number”。如果我输入一个字符串,我得到运行时错误'13':输入不匹配。我想如果我只是使用了Else声明,那就说再试一次。尽管如此,它并没有这样做。我是否需要在Else声明中处理错误?如果是这样,这些线是什么?
Sub gadgetmanuf()
Dim need As Integer
'Dim rawneed As Single
'Dim rawavailable As Single
need = InputBox("How many gadgets are needed?", "Insert a number")
If TypeName(need) = "Integer" Then
MsgBox ("Got your number")
Else
MsgBox ("Try again")
End If
End Sub
答案 0 :(得分:5)
使用类型为Application.InputBox
的{{1}}会强制用户输入一个数字(为文本,范围等提供自己的错误消息)。所以你需要处理的只是1
选项,即
下面的代码使用变量来处理此问题,因为使用带有 Integer 的<{1}}或 Long 给出0 - 这可能是有效的条目。< / p>
Cancel
更长的选项
测试输入的变量是否大于0
Cancel
答案 1 :(得分:0)
在你的例子中,'need'是一个整数数据类型,所以它总是一个整数。
看看这个:
Sub test()
x = Range("A1").Value
If Int(x) / x = 1 Then
MsgBox "Value is an Integer"
Else
MsgBox "Value is not an Integer"
End If
End Sub
或假设A1在任何其他单元格中有数字,放置公式:
=IF(INT(A1)=A1,"True","False")