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... 最后,当堆栈填满时,您就会收到该错误。

相关内容