gpt4 book ai didi

VBA 出栈错误

转载 作者:行者123 更新时间:2023-12-04 21:16:46 26 4
gpt4 key购买 nike

当按下 OnKey 事件时,我有几个潜艇相互调用。过了一会儿,调用堆栈建立起来,我得到一个“堆栈外”错误。有没有清除堆栈的方法?或者至少在我不使用它的时候结束它?
例如。

Sub MoveRight()
if GetKeyState(vbKeyDown) <0 then MoveDown
...
...
sub MoveDown
if GetKeyState(vbKeyRight) < 0 then MoveRight
...
...
etc

最佳答案

“Out of Stack”是一个严重的 fatal error 。清除它的方法是重新启动 Excel。尽管仅重新启动 VBA 就足够了,但我肯定不会相信它。

这里的问题是您编写了一对具有无限递归的方法。不要那样做。对此最简单的一般解决方法是让您的例程设置静态标志以防止重新进入:

Sub MoveRight()
Static InUse As Boolean
If InUse Then Exit Sub
InUse = True
if GetKeyState(vbKeyDown) <0 then MoveDown
...
...
InUse = False
End Sub

更具体的修复需要了解您实际尝试做的事情,此时这看起来非常可疑。

关于VBA 出栈错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com