我正在使用VBA UserForms协助用户创建不同的Word文档的项目。其中一个要求是用户能够在用户表单之间来回切换。VBA - 我可以卸载堆栈调用以避免运行时28“超出堆栈空间”错误?
这个最新的文档比以前的文档有更多的用户窗体(大约31个),我发现我可以通过填充大多数窗体触发运行时错误28“堆栈空间不足”,然后导航回来到第一个,然后再往前走。当我继续前进时,我和第一次完全没有什么不同,所以我确实认为由于调用次数的限制,它确实超出了堆栈空间,而不是递归或其他问题这里的微软文档https://msdn.microsoft.com/en-us/library/aa264523(v=vs.60).aspx。
为了记录,我正在卸载表单时,回来或转发。例如:
Private Sub cb_back_Click() 'backward navigation
Unload Me
showPreviousForm
End Sub
我的问题是,在VBA中有一种方法可以从堆栈中“卸载”一个调用吗?
用户不太可能会做我所做的事情,所以我并不太在意这个项目的这一部分,但我想知道如果项目的其他部分更接近极限。
在此先感谢。
谢谢。 我意识到卸载我并不能帮助调用堆栈。 (我试图避免像“卸载用户表单”这样的答案)。但是你指出了我未来可以采取的方向。我只需要弄清楚如何让用户窗体关闭,并且所有的子窗体都是完整的。我已经存储了足够的数据来确定状态,所以它不应该太难。 –
@brett_x阅读[this](https://stackoverflow.com/documentation/vba/5351/user-forms#t=201708141749324381879)而Documentation.SO仍然存在;-) –