黄缘盒龟那里有:VB,inputbox问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 16:29:54
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中点取消就出错
为什么???????

n& = InputBox("请输入非负整数", "公式计算")
因为你的n声明的是数值形变量,inputbox如果点取消的话他会返回一个空字符串,把一个空字符串赋给数值型变量会抱一个类型不匹配的错误,建议把程序修改成这样:
n& = fix(val(InputBox("请输入非负整数", "公式计算")))
if n>0 then
Label1.Caption = "n=" & n & " n!=" & Factorial(n)
end if