首页 > 解决方案 > 收到“Microsoft Excel 已停止工作”消息

问题描述

我在 Windows 7 Professional 上运行 MS Office 2010。

在过去一个月左右的时间里,我一直在周期性地遇到这个问题,不是一直都有,但可能每周一到两次。

我正在处理一个相当复杂的工作簿的 VBA 部分。我从复制前一天的工作簿开始新的一天,然后对副本进行任何后续代码更改。完成后,我将运行 VBA Code Cleaner,进行调试,保存然后退出 Excel。我还保存了备份副本。然后,我将多次重新打开和关闭这两个工作簿,以使自己确信一切仍在运行。

第二天我将唤醒计算机并尝试打开这些文件,一旦 VBA 代码开始运行,我就会收到“Microsoft Excel 已停止工作”消息。这可能发生在主文件或备份文件上,有时两者都发生。

如果我用 shift 键打开坏文件,我可以进入 VBE 区域,但是当我执行调试或尝试运行 VBA Code Cleaner 时,我会收到相同的消息。

我发现从中恢复的唯一方法是:

  1. 手动导出代码
  2. 将文件另存为 xlsx 文件,从而删除所有代码。
  3. 将 xlsx 文件另存为新的 xlsm/xlsb 文件,然后导入导出的代码。

我今天才发现另一种恢复方法是将文件另存为“xls”,然后重新另存为 xlsb/xlsm,这似乎以某种方式“清理”了某些东西。

恢复后一切都很好,至少几天。到目前为止我已经尝试过:

  1. 在互联网上搜索了可能的解决方案,包括 StackOverflow。
  2. 运行各种病毒检查程序(MS Essentials、Malwarebytes、SuperAntiSpyware)
  3. 修复了 MS Office 2010。
  4. 卸载并重新安装 MS Office 2010
  5. 删除了所有加载项
  6. 已卸载的 Dropbox
  7. 开始使用新的用户配置文件。

我遇到了几篇建议 xlsb 文件容易损坏的文章,因此我开始将其保存为 xlsm 文件。一切都顺利进行了大约一周,我认为我已经解决了这个问题。但是,现在 xlsm 文件也开始发生这种情况,所以我回到第一方。

我的想法已经不多了——接下来我可能会尝试重新安装 Windows 7,但我真的希望避免这样做!我真的很感激任何建议。谢谢。

标签: excelvba

解决方案


好吧,我相信我可能已经找到了我的问题。我注意到我的一个类对象并不总是正确终止,因为它在不同的类中被引用。我解决了这个问题,现在已经 11 天没有任何问题(触摸木头)。所以我有理由相信这是根本原因。但我必须承认,我仍然不太确定为什么这偶尔会损坏工作簿。


推荐阅读