【发布时间】:2021-09-01 17:07:18
【问题描述】:
自从升级到 Excel 365 后,我的公司一直遇到各种问题,即 VBA 支持的 Excel 工作簿崩溃或无法正常运行。这些问题出现在各种工作簿和各个部门,包括看似简单的 VBA 工作簿。我发现了一个修复方法(见下文),但它是不可持续的。
问题
下面列出了我们遇到的各种问题。请注意,仅当您在 Excel 365 桌面版中打开文件时才会出现这些问题。在 Excel 365 浏览器应用程序或 Excel 2016 中打开相同的文件时,它们可以正常工作。此外,所有这些问题都是随机发生的。用户可能已经在文件中工作了数周,然后他们下次打开文件时遇到这些错误之一。
- “找不到项目或库”错误,即使我们使用标准库和基本 VBA 集也是如此。然后,当您打开 VBA 编辑器窗口时,所有 VBA 屏幕基本上都被冻结了,无法访问库列表。
- Excel 在打开这些文件并启用 VBA 时硬崩溃或锁定。请注意,崩溃仅在启用 VBA 时发生。如果您在未启用 VBA 的情况下打开文件,它会正常工作(但显然您不能使用任何代码)。
- 文件打开时看似正常,但 VBA 无法正常工作,当您访问 VBA 编辑器窗口时,一切都再次被锁定。
- “出现未处理的 win32 异常”错误
- 执行命令时,出现错误 32809,这似乎表明编译的 VBA 已损坏
修复
打开 VBA 编辑器窗口,然后选择 Debug -> Compile VBAProject 似乎可以解决问题。在以这种方式手动编译文件的情况下,我还没有遇到上述任何问题。这样做的问题是,每次向文件中添加代码或向文件中添加新选项卡时,都必须重新执行此手动编译。
是的,显然在文件中添加单个选项卡会改变工作簿结构,以至于需要再次编译。 Compiled VBAProject 选项将显示为灰色。但是添加一个选项卡(或添加新的 VBA)会使它变灰,需要再次手动编译,否则问题会再次出现。
此修复也适用于修复出现上述问题的文件。要修复这些文件,您可以:
- 确保在您的安全设置中启用“禁用受信任的文档”和“禁用带有通知的 VBA 宏”,以便在您打开文件时 VBA 不会自动运行。
- 打开出现错误的文件,但不要启用 VBA。
- 进入 VBA Editor 窗口,选择 Debug -> Compile VBAProject。
- 保存文件,关闭它,重新打开它,启用 VBA,然后一切正常。
但同样,这是不可持续的,因为我的所有用户在向工作簿添加新选项卡时都必须记住编译 VBA。
帮助?
有没有人找到更可持续的解决方案来解决这个问题? Microsoft 正在开发的 Excel 365 Desktop 自动编译器是否存在错误?
【问题讨论】:
-
这些文件在哪里?它们在 SharePoint\Teams\OneDrive 中吗?在服务器上?还是 PC 本地?
-
一般情况下它们在我们公司的共享文件服务器上。但是我们在保存到本地驱动器的文件时遇到了同样的问题。
-
我已经使用 Excel 365 多年了。它与 Excel 2016/2019 或任何最新版本没有什么不同。还有其他事情正在发生。您是否使用任何附加组件或第 3 方扩展程序?
-
文件是什么文件格式?老
.xls?还是新的.xlsb? -
文件都是.xlsm,使用宏。