Private Sub Command1_Click()
Dim num As Long
num = CLng(txtNum.Text)
Call factorial(num)
End SubPrivate Sub Form_Load()
txtNum.Text = ""
txtFactorial.Text = ""
End SubPrivate Sub txtNum_Change()
txtFactorial.Text = ""
End SubPrivate Sub factorial(mum As Long)
Dim result As Long
Dim ptr As Long
result = 1
For ptr = 1 To num
  result = result * ptr
Next ptr
txtFactorial.Text = CStr(result)
End Sub

解决方案 »

  1.   

    Private Sub factorial(num As Long)
    建议在模块前加Option Explicit,或者通过工具菜单的选项子菜单
    将“编辑”页中的强制声明变量选择项选中,就不至于犯这种错误了
      

  2.   

    问题出在这里
    Private Sub factorial(mum As Long)
    Dim result As Long
    Dim ptr As Long
    result = 1
    '问题所在--mum拼写成了num
    'For ptr = 1 To num
    For ptr = 1 To mum
      result = result * ptr
    Next ptr
    txtFactorial.Text = CStr(result)
    End Sub但是你这样求阶乘,真是问题多多,多的无法形容,建议看看数据结构和算法