我在输入框中输入字母表时出现运行时错误
Dim amount As String
amount = InputBox("Enter the amount of people you want to participtate", "System Message")
If amount < 0 Or Not (IsNumeric(amount)) Then
MsgBox("Please enter positive number of people", vbExclamation, "System Message")
End If
答案 0 :(得分:2)
将字符串与数字进行比较是相当危险的,并且在你的脸上爆炸。您可以使其工作,但您必须仔细编写代码,确保您永远不会尝试比较无法转换为数字的字符串。这需要使用另一个运营商:
If Not IsNumeric(amount) OrElse amount < 0 Then
MsgBox("Please enter positive number of people", vbExclamation, "System Message")
End If
注意更改的顺序和OrElse的使用,Or的短路版本。如果左侧已经为True,它将不会评估右侧表达式。
更多以.NET为中心的方法是使用Integer.TryParse()将字符串转换为数字。
答案 1 :(得分:1)
为了避免错误,你可以这样做..
If IsNumeric(amount) Then
If value(amount) > 0 Then
'codes here
Else
MsgBox("Please enter positive number of people", vbExclamation, "System Message")
End If
Else
MsgBox("Please enter a number of people", vbExclamation, "System Message")
End If
答案 2 :(得分:0)
所以我正在考虑验证一个文本框,首先我想确保它不是空的,并确保它是一个数字。我绝不是专家,但我会把我写的代码用来验证用户输入。我把它放在一个函数中,因为我有很多用户必须输入的文本字段。
Class MainWindow
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
tb2.Text = tbCheck(tb1)
End Sub
Private Function tbCheck(ByRef tb As TextBox) As Boolean
tbCheck = tb.Text.Length > 0
Try
tbCheck = (tb.Text / 1) > 0
Catch ex As Exception
tbCheck = False
End Try
Return tbCheck
End Function
结束班
这只是我编写的简单程序,用于检查代码是否按照我的希望工作。 希望这可以帮助某人或者至少告诉我是否有我遗失的东西。