| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1102 人关注过本帖
标题:[求助]:在弹出得inputbox中点取消就出错?
只看楼主 加入收藏
糊涂虫
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-2-11
收藏
 问题点数:0 回复次数:4 
[求助]:在弹出得inputbox中点取消就出错?
Function Factorial(n As Long) As Long
Dim nTemp As Long
If n = 0 Or n = 1 Then
nTemp = 1
Else
nTemp = n * Factorial(n - 1) '进行递归调用
End If
Factorial = nTemp
End Function

Private Sub Command1_Click()
n& = InputBox("请输入非负整数", "公式计算") '输入一个数,求它的阶乘
Label1.Caption = "n=" & n & " n!=" & Factorial(n)
End Sub

在弹出得inputbox中点取消就出错
为什么???????
搜索更多相关主题的帖子: inputbox中点 Factorial nTemp Long amp 
2006-03-13 13:36
kfp_kaka
Rank: 4
等 级:贵宾
威 望:13
帖 子:353
专家分:0
注 册:2006-1-12
收藏
得分:0 

按了取消后,inputbox返回的是一个空字符,而你的n定义的不是字符类型,所以就会出项
类型不匹配的错误,解决办法是在inputbox前加如Val()函数
n& = Val(InputBox("请输入非负整数","公式计算"))
然后判断是否要调用Factorial函数
If n = 0 then
exit sub
endif


爱一个人不一定要拥有她 拥有一个人就一定要好好的爱她
2006-03-13 15:02
糊涂虫
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-2-11
收藏
得分:0 

谢谢了


Wǒ會習慣①個人荇走,亨受着自由,雖然偶倁噵,自由的代价是寂寞!
2006-03-13 16:03
Ver
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2006-2-8
收藏
得分:0 
Function Factorial(n As Long) As Long
Dim nTemp As Long
If n = 0 Or n = 1 Then
nTemp = 1
Else
nTemp = n * Factorial(n - 1) '进行递归调用
End If
Factorial = nTemp
End Function

Private Sub Command1_Click()
n& = InputBox("请输入非负整数", "公式计算") '输入一个数,求它的阶乘
if n& <> "" then
if isnumeric(n&) then
if val(n&) >=0 then
Label1.Caption = "n=" & n & " n!=" & Factorial(n)
else
msgbox("错误!")
end if
else
msgbox("错误!")
end if
else
msgbox("错误!")
end if
End Sub

我用古老的咒语重温,吟唱灵魂序曲寻根 面对魔界的邪吻,不被污染的转身,维持纯白的象徵然后还原为人
2006-03-14 08:48
辉少
Rank: 1
等 级:新手上路
威 望:2
帖 子:147
专家分:7
注 册:2005-8-25
收藏
得分:0 
最简单的就是出错时忽略
on error resume next

辉少QQ:469781880 博客:http:///bbs/boke.asp?25189.index.html
2006-03-14 11:08
快速回复:[求助]:在弹出得inputbox中点取消就出错?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018778 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved