Excel VBA的错误6,溢出问题

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也是不够的。虽然没有得到满意答案还是采纳了,谢谢。

dim语句中的integer都改为Long,因为Integer正数最大为32767

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

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

另外可以学习VBA的字典法,进一步提高匹配速度
这样可以么?追问

只用改integer就好了吗?那个数组不是很懂。改了还是溢出

温馨提示:答案为网友推荐,仅供参考
相似回答