Excel VBA的错误6,溢出问题

Sub计算阶乘()Dimn,iAsIntegerDimfAsLongn=Val(InputBox("输入n的值:","计算阶乘"))f=1Fori=1Tonf=f*iNe... Sub 计算阶乘()
Dim n, i As Integer
Dim f As Long
n = Val(InputBox("输入n的值:", "计算阶乘"))
f = 1
For i = 1 To n
f = f * i
Next i
MsgBox n & "!=" & f, vbOKOnly, "计算阶乘"
End Sub

新手上路,求大神解答!
问了老师应该经F定义为double,long也是不够的。虽然没有得到满意答案还是采纳了,谢谢。
展开
 我来答
情感界的大咖8281
推荐于2017-11-26 · 超过67用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:132万
展开全部
dim语句中的integer都改为Long,因为Integer正数最大为32767

另外,大量循环应该考虑将表格读入数组,用数组参与循环,提高速度。

比如使用语句:A1=Worksheets("样本1").usedrange
则生成A1数组,A1(i,1)就相当于cells(i,1)

另外可以学习VBA的字典法,进一步提高匹配速度
这样可以么?
追问
只用改integer就好了吗?那个数组不是很懂。改了还是溢出
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式