VBA 錯誤:堆疊空間不足

VBA 錯誤:堆疊空間不足

我在 Excel 工作表中有一個非常簡單的宏,允許使用者重新計算。

我的工作簿中沒有其他巨集/程式碼,並且僅開啟了此工作簿

Sub Calculate()
    Calculate
End Sub

這是透過按鈕激活的。

但是,當按下時,我會收到兩個錯誤框,請參見圖片。

什麼是Out of stack space mean?我該如何解決這個問題? 在此輸入影像描述

我看過這個網站:

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/out-of-stack-space-error-28

它說我可能有太多功能?這個巨集曾經工作得很好,但它幾乎沒有做很多事情,所以無法理解這個問題。

我可以使用公式標籤下的選項來計算工作表。

答案1

您定義的函數是遞歸的,無條件地呼叫自身,直到堆疊充滿所有呼叫。

您應該更改子程序的名稱,例如:-

Sub Calc()
    Calculate
End Sub

如果連結Calc()到該按鈕,就可以避免任何遞歸。

答案2

您在Calculate 內部呼叫Calculate。每次對Calculate 的調用都會導致對Calculate 的另一次調用,然後該調用將調用Calculate...然後最終當堆疊填滿時您會收到該錯誤。

相關內容