VB嵌套循环问题,求解
PrivateSubForm_Click()DimMsg,UserInputMsg="Pleaseenteraletter"UserInput=InputBox(Msg)...
Private Sub Form_Click()
Dim Msg, UserInput
Msg = "Please enter a letter"
UserInput = InputBox(Msg)
If Not IsNumeric(UserInput) Then
If Len(UserInput) <> 0 Then
Select Case Asc(UserInput)
Case 65 To 90 '大写字母
Msg = "You entered the uppercase letter'"
Msg = Msg & Chr(Asc(UserInput)) & "'."
Case 97 To 122 '小写字母
Msg = "You entered the lowercase letter'"
Msg = Msg & Chr(Asc(UserInput)) & "'."
Case Else
Msg = "You did not enter a letter or a number"
End Select
End If
Else
Select Case CDbl(UserInput) 'If it is a number
Case 1, 3, 5, 7, 9 '奇数
Msg = userinputer & "is an odd number"
Case 0, 2, 4, 6, 8 '偶数
Msg = UserInput & "is an even number"
Case Else '出界
Msg = "You entered a number outside"
Msg = Msg & "the requested range"
End Select
End If
MsgBox Msg
End Sub
这里的 Msg = Msg & Chr(Asc(UserInput)) & "'."和 Select Case CDbl(UserInput) 'If it is a number
使用函数是不是累赘?
不可以直接Msg = Msg & UserInput & "'."
Select Case UserInput 'If it is a number
之前的 If Not IsNumeric(UserInput)......Else不是已经检查了输入的条件,这里不过不用可以吗?
或者是语句的严谨性
这里的 If Not IsNumeric(UserInput) then 是什么意思?
返回的是false的值吗? 展开
Dim Msg, UserInput
Msg = "Please enter a letter"
UserInput = InputBox(Msg)
If Not IsNumeric(UserInput) Then
If Len(UserInput) <> 0 Then
Select Case Asc(UserInput)
Case 65 To 90 '大写字母
Msg = "You entered the uppercase letter'"
Msg = Msg & Chr(Asc(UserInput)) & "'."
Case 97 To 122 '小写字母
Msg = "You entered the lowercase letter'"
Msg = Msg & Chr(Asc(UserInput)) & "'."
Case Else
Msg = "You did not enter a letter or a number"
End Select
End If
Else
Select Case CDbl(UserInput) 'If it is a number
Case 1, 3, 5, 7, 9 '奇数
Msg = userinputer & "is an odd number"
Case 0, 2, 4, 6, 8 '偶数
Msg = UserInput & "is an even number"
Case Else '出界
Msg = "You entered a number outside"
Msg = Msg & "the requested range"
End Select
End If
MsgBox Msg
End Sub
这里的 Msg = Msg & Chr(Asc(UserInput)) & "'."和 Select Case CDbl(UserInput) 'If it is a number
使用函数是不是累赘?
不可以直接Msg = Msg & UserInput & "'."
Select Case UserInput 'If it is a number
之前的 If Not IsNumeric(UserInput)......Else不是已经检查了输入的条件,这里不过不用可以吗?
或者是语句的严谨性
这里的 If Not IsNumeric(UserInput) then 是什么意思?
返回的是false的值吗? 展开
4个回答
展开全部
1、 Msg = Msg & Chr(Asc(UserInput)) & "'."可以简化为
Msg = Msg & UserInput & "'."
至于Select Case CDbl(UserInput) 'If it is a number,是必要的,因为InputBox得到一个字符串,然后赋值给Userinput,而后面的Select Case中的判断条件数据类型为数字,所以需用CDbl转换一下。但由于所涉及的只是一个单一数字,本人认为用CInt或CLng更好。
2、 If Not IsNumeric(UserInput) then的意思是:InNumeric函数检测是不是数字或数字字符串,整句就是“如果不是数字或数字字符串,然后……”
Msg = Msg & UserInput & "'."
至于Select Case CDbl(UserInput) 'If it is a number,是必要的,因为InputBox得到一个字符串,然后赋值给Userinput,而后面的Select Case中的判断条件数据类型为数字,所以需用CDbl转换一下。但由于所涉及的只是一个单一数字,本人认为用CInt或CLng更好。
2、 If Not IsNumeric(UserInput) then的意思是:InNumeric函数检测是不是数字或数字字符串,整句就是“如果不是数字或数字字符串,然后……”
展开全部
If Not IsNumeric(UserInput) Then
判断输入是否为非数字(主意哪个Not,IsNumberic是返回是否为数字
Select Case CDbl(UserInput)
为数字的话,将它转换为双精度数字,不累赘
另:CDbl确实觉得没必要用这个函数,CInt和CLong更好,但是如果说考虑到可能会输入小数的话,这个又比CInt和CLong更安全。
另外哪个Chr(Asc()),确实无意义了。
判断输入是否为非数字(主意哪个Not,IsNumberic是返回是否为数字
Select Case CDbl(UserInput)
为数字的话,将它转换为双精度数字,不累赘
另:CDbl确实觉得没必要用这个函数,CInt和CLong更好,但是如果说考虑到可能会输入小数的话,这个又比CInt和CLong更安全。
另外哪个Chr(Asc()),确实无意义了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
IsNumeric 检查的输入值是否是数字
If Not IsNumeric(UserInput) 就是不是数字的则执行后面的代码,如何输入的不是数字,则返回的是true
明显程序分为数字和英文字母两块,分别有不同的处理
至于你第一个问题。。这个程序的目的不是为了显示用户输入的内容。而是对用户输入的内容,进行判定后,告诉用户输入的大写字母还是小写字母,又或者是奇数还是偶数
If Not IsNumeric(UserInput) 就是不是数字的则执行后面的代码,如何输入的不是数字,则返回的是true
明显程序分为数字和英文字母两块,分别有不同的处理
至于你第一个问题。。这个程序的目的不是为了显示用户输入的内容。而是对用户输入的内容,进行判定后,告诉用户输入的大写字母还是小写字母,又或者是奇数还是偶数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Function IsNumeric(Expression) As Boolean
VBA.Information 的成员
如果能够将表达式转换成数值型,返回 True
VBA.Information 的成员
如果能够将表达式转换成数值型,返回 True
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询