是否有调用堆栈级别限制?

Nic*_*ick 3 excel vba callstack

我有几个同事在查看 Excel VBA 中的一些错误代码,想知道调用堆栈中的级别数是否有限制

Joe*_*oey 6

除非该函数是尾递归的并且 VBA 可以处理它(它不能),否则您将遇到堆栈溢出。

作为一个简单的测试,我将以下代码片段组合在一起:

Dim count As Integer

Sub Rec()
    count = count + 1
    Cells(1, 1) = count
    Call Rec
End Sub
Run Code Online (Sandbox Code Playgroud)

这告诉我们这个限制是 4007 次迭代,至少在我这里的 Excel 2007 版本中是这样。