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的值吗?
展开
 我来答
adai_008
2014-04-03 · TA获得超过1385个赞
知道大有可为答主
回答量:1152
采纳率:83%
帮助的人:788万
展开全部
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函数检测是不是数字或数字字符串,整句就是“如果不是数字或数字字符串,然后……”
lanslot_frog
2014-04-03 · 超过31用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:58.3万
展开全部
If Not IsNumeric(UserInput) Then

判断输入是否为非数字(主意哪个Not,IsNumberic是返回是否为数字
Select Case CDbl(UserInput)

为数字的话,将它转换为双精度数字,不累赘
另:CDbl确实觉得没必要用这个函数,CInt和CLong更好,但是如果说考虑到可能会输入小数的话,这个又比CInt和CLong更安全。
另外哪个Chr(Asc()),确实无意义了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanbing530
2014-04-03 · TA获得超过250个赞
知道小有建树答主
回答量:260
采纳率:90%
帮助的人:122万
展开全部
IsNumeric 检查的输入值是否是数字

If Not IsNumeric(UserInput) 就是不是数字的则执行后面的代码,如何输入的不是数字,则返回的是true
明显程序分为数字和英文字母两块,分别有不同的处理
至于你第一个问题。。这个程序的目的不是为了显示用户输入的内容。而是对用户输入的内容,进行判定后,告诉用户输入的大写字母还是小写字母,又或者是奇数还是偶数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
personname
2014-04-03 · TA获得超过726个赞
知道小有建树答主
回答量:586
采纳率:50%
帮助的人:340万
展开全部
Function IsNumeric(Expression) As Boolean
VBA.Information 的成员
如果能够将表达式转换成数值型,返回 True
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式