学习VB过程时遇到了一个小问题

OptionExplicitPublicFunctionfib(nAsLong)AsLongDimnumAsLongnum=nIfnum>2Thenfib=fib(num... Option Explicit
Public Function fib(n As Long) As Long
Dim num As Long
num = n
If num > 2 Then
fib = fib(num - 1) + fib(num - 2)
Else
fib = 1
End If
End Function

Private Sub Command1_Click()
Dim i, max, a, r, n As Long
Dim bool As Boolean
max = 0
bool = validate_num(Text1.Text, 30)
If bool = False Then
Text1.Text = ""
Text1.SetFocus
Else
a = CInt(Text1.Text)
For n = 1 To a //将这里的N变成I为什么编译不过?改成N就能编译过//
r = fib(n) //将这里的N变成I为什么编译不过?改成N就能编译过//
max = max + r
Next n
Label3.Caption = "当前值:" & fib(CInt(Text1.Text))
Label4.Caption = "求和:" & max
End If
End Sub

Private Function validate_num(num As Long, num1 As Long) As Boolean
'判断输入数值是否满足条件
Dim a As Integer
If num <= 0 Then
MsgBox "请输入一个正值……"
validate_num = False
Else
If num > num1 Then
a = MsgBox("数值设置较大,计算时间可能会很长,是否继续?", vbOKCancel + vbQuestion, "提示")
If a = 1 Then
validate_num = True
Else
validate_num = False
End If
Else
validate_num = True
End If
End If
End Function
展开
 我来答
HappyQ6
2009-01-27 · TA获得超过2092个赞
知道大有可为答主
回答量:1641
采纳率:100%
帮助的人:578万
展开全部
Dim i, max, a, r, n As Long
这句其实并没有将你想申明为LOng的i, max, a, r申明成功,只有最后的n申明成功了,其他的都是随机型变量,未指定类型
我以前也是这么申明的
要注意哦
解决的办法是将上面那句改为dim i as long, max as long, a as long, r as long, n as long
Dim i, max, a, r, n As Long是将i, max, a, r, n设置为variant类型,n设为long型,而Public Function fib(n As Long) As Long这句中指定参数的类型为long,所以传递i就会出现参数类型不符的错误.
二白Q0
2009-01-27 · TA获得超过2413个赞
知道大有可为答主
回答量:990
采纳率:0%
帮助的人:1094万
展开全部
Dim i, max, a, r, n As Long
这句其实是将i, max, a, r, n设置为variant类型,n设为long型,而Public Function fib(n As Long) As Long这句中指定参数的类型为long,所以传递i就会出现参数类型不符的错误.
解决的办法是将上面那句改为dim i as long, max as long, a as long, r as long, n as long
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1a630e942
2009-01-27 · TA获得超过1547个赞
知道小有建树答主
回答量:1575
采纳率:100%
帮助的人:1259万
展开全部
你改成i后吧最上面的Option Explicit去掉试试!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式