我有许多包含VBA代码的Excel模板。其中一些基于其他模板使用VBA代码创建新文档。它们都工作良好,直到上周五为止,但是今天我感到很惊讶:基于带有宏的模板创建第一个文档效果很好,但是创建第二个文档则会损坏代码。
我能够使用从头开始创建的两个非常小的模板来重现该问题:
这时,您可以在VBA编辑器上看到第二个文档的VBA项目已损坏。损坏的迹象是项目浏览器上的Wrokbook和Worksheet模块上的图标错误,并且是有关尝试进行编译的灾难性失败的消息。
首先使用第二个模板,然后第一个模板将破坏打开的第二个模板。
单击here获取文件以重现该问题。
编辑
如果您不想下载文件(我知道,要感谢@Mathieu Guindon的评论),则可以通过以下简单方式创建文件:
现在,您有两个文件可用于重现上述问题。
答案 0 :(得分:1)
Excel 2019 MSO(16.0.11629.20210)32位。
===经过测试:打开顺序和文件类型===
•失败-打开一个包含VBA的Excel模板,然后打开另一个包含VBA的模板。
•OK-打开一个包含VBA的Excel模板,然后打开任何模块中都没有代码的Excel模板。
•确定-打开一个包含VBA的Excel模板,然后打开一个XLSB(Excel二进制文件),该模板是通过重新保存以前的任何包含代码的工作簿创建的。
===经过测试:VBA编辑器的“即时”窗口===
•失败-在VBA编辑器中,从第二个或任何后续包含VBA的工作簿中打开代码模块,然后在“立即”窗口中运行命令。
•确定-在VBA编辑器中,从第一个工作簿中打开代码模块,然后在“立即”窗口中运行命令。
===找不到有关它的任何MS文章。 ===
没有在https://support.office.com/en-us/article/fixes-or-workarounds-for-recent-issues-in-excel-for-windows-49d932ce-0240-49cf-94df-1587d9d97093上列出,但这绝对是Excel的问题:
除非打开第二个及所有后续宏工作簿均为.XLSB,否则不能打开多个启用宏的工作簿并实际运行宏。
即使没有加载加载项。
症状:
•Excel配置为允许宏,但没有宏运行。
•Excel配置为提示输入宏,但不提示输入。
•在初始工作簿导致灾难性错误,自动化错误或编译错误之后,尝试在工作簿中运行宏。
答案 1 :(得分:0)
Microsoft已经确认版本1905已损坏,并且损坏了从带有宏的模板创建的第二个Excel文档。
他们向我发送了(一长串)步骤列表,用于卸载Office 365,运行脚本以清除某些缓存,创建新配置并重新安装,并指定半年更新通道并阻止安装1905。< / p>