gpt4 book ai didi

vba - 调用堆栈中未显示的背景宏/子程序

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

我有一个包含很多工作表和几个宏的工作簿。当我进入 VBA 并尝试将新的 Sub 写入 ThisWorkbook 模块时,我看到:

"This will reset your project, proceed anyway?"



假设,某个项目当前正在运行。

如果我在打开文件后立即按 Ctrl + L 来检查调用堆栈,它什么也不显示。

我自己没有运行任何宏,也没有宏可以处理任何事件(就我检查项目中的所有工作表和模块而言),除了一个用于保存事件的小子:
Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean)

但是这个 AFAIK 应该只在保存之前被激活,感谢船长 Obvious。

这本书的另一个神秘之处是结构化表格的过滤异常缓慢,可以通过关闭事件处理程序来解决:
Application.EnableEvents = False

由于这两个事实都与事件有关,我猜它们可能以某种方式相互关联。

更新以包括以下评论。

好吧,问题仍然存在,我很感激任何可能有助于找到这个讨厌的宏运行完全隐藏的想法。

嗯。有任何想法的人吗?

最佳答案

重现您描述的行为的一种方法如下:

1) 有一个在 Workbook_Open() 中初始化的公共(public)变量
2) 有选项Notify Before State Loss已启用(在 Tools/Options/General 下)

在这种情况下,当您第一次打开工作簿并尝试创建子时,您会看到有关重置项目的警告,即使当前没有运行宏。

如果是这种情况,一个简单的解决方法(如果它仍然困扰您)是禁用 Notify Before State Loss .

另一方面,您的项目似乎有更普遍的问题。 VBA 项目可能会莫名其妙地损坏,这可能就是这种情况。有时可行的修复方法是导出所有模块、用户表单等,删除它们,然后重新导入它们。 Rob Bovey(一位备受尊敬的 VBA 大师)编写了一个名为 Code Cleaner 的插件。使过程自动化。我没有亲自使用它,但它可能值得一试。

关于vba - 调用堆栈中未显示的背景宏/子程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33539497/

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