根据带有宏的模板创建第二个文档后文件损坏

时间:2019-06-03 20:47:02

标签: excel vba

我有许多包含VBA代码的Excel模板。其中一些基于其他模板使用VBA代码创建新文档。它们都工作良好,直到上周五为止,但是今天我感到很惊讶:基于带有宏的模板创建第一个文档效果很好,但是创建第二个文档则会损坏代码。

我能够使用从头开始创建的两个非常小的模板来重现该问题:

  1. 双击第一个文件以创建第一个文档
  2. 双击第二个创建另一个文档

这时,您可以在VBA编辑器上看到第二个文档的VBA项目已损坏。损坏的迹象是项目浏览器上的Wrokbook和Worksheet模块上的图标错误,并且是有关尝试进行编译的灾难性失败的消息。

首先使用第二个模板,然后第一个模板将破坏打开的第二个模板。

单击here获取文件以重现该问题。

编辑

如果您不想下载文件(我知道,要感谢@Mathieu Guindon的评论),则可以通过以下简单方式创建文件:

  1. 创建一个新的Excel文件
  2. 添加带有显示消息框的简单子模块的模块
  3. 将其另存为带有宏的模板
  4. 重复第二个文件

现在,您有两个文件可用于重现上述问题。

2 个答案:

答案 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>