共用方式為


建立遞迴程序

程序變數空間有限。 每次程序呼叫自己時,就會佔用更多該空間。 一個自稱為 的程序是一個遞迴程序。 一個持續呼叫自身的遞迴程序最終會造成錯誤。 例如:

Function RunOut(Maximum) 
    RunOut = RunOut(Maximum) 
End Function

當兩個程序無限次呼叫彼此,或某些限制遞迴的條件從未被滿足時,這個錯誤可能不那麼明顯。 遞迴確實有它的用途。 例如,以下程序使用遞迴函數來計算階乘。

Function Factorial (N) 
    If N <= 1 Then ' Reached end of recursive calls. 
        Factorial = 1 ' (N = 0) so climb back out of calls. 
    Else ' Call Factorial again if N > 0. 
        Factorial = Factorial(N - 1) * N 
    End If 
End Function

你應該測試遞迴程序,確保它不會叫自己太多次,導致記憶體用盡。 如果收到錯誤,請確認你的程序沒有無限期地自我呼叫。 之後,嘗試透過以下方式節省記憶體:

  • 消除不必要的變數。
  • 使用除了 Variant 以外的資料型別
  • 重新評估程序的邏輯。 你通常可以用巢狀迴圈來取代遞迴。

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應