excel - 收到“Microsoft Excel 已停止工作”消息
问题描述
我在 Windows 7 Professional 上运行 MS Office 2010。
在过去一个月左右的时间里,我一直在周期性地遇到这个问题,不是一直都有,但可能每周一到两次。
我正在处理一个相当复杂的工作簿的 VBA 部分。我从复制前一天的工作簿开始新的一天,然后对副本进行任何后续代码更改。完成后,我将运行 VBA Code Cleaner,进行调试,保存然后退出 Excel。我还保存了备份副本。然后,我将多次重新打开和关闭这两个工作簿,以使自己确信一切仍在运行。
第二天我将唤醒计算机并尝试打开这些文件,一旦 VBA 代码开始运行,我就会收到“Microsoft Excel 已停止工作”消息。这可能发生在主文件或备份文件上,有时两者都发生。
如果我用 shift 键打开坏文件,我可以进入 VBE 区域,但是当我执行调试或尝试运行 VBA Code Cleaner 时,我会收到相同的消息。
我发现从中恢复的唯一方法是:
- 手动导出代码
- 将文件另存为 xlsx 文件,从而删除所有代码。
- 将 xlsx 文件另存为新的 xlsm/xlsb 文件,然后导入导出的代码。
我今天才发现另一种恢复方法是将文件另存为“xls”,然后重新另存为 xlsb/xlsm,这似乎以某种方式“清理”了某些东西。
恢复后一切都很好,至少几天。到目前为止我已经尝试过:
- 在互联网上搜索了可能的解决方案,包括 StackOverflow。
- 运行各种病毒检查程序(MS Essentials、Malwarebytes、SuperAntiSpyware)
- 修复了 MS Office 2010。
- 卸载并重新安装 MS Office 2010
- 删除了所有加载项
- 已卸载的 Dropbox
- 开始使用新的用户配置文件。
我遇到了几篇建议 xlsb 文件容易损坏的文章,因此我开始将其保存为 xlsm 文件。一切都顺利进行了大约一周,我认为我已经解决了这个问题。但是,现在 xlsm 文件也开始发生这种情况,所以我回到第一方。
我的想法已经不多了——接下来我可能会尝试重新安装 Windows 7,但我真的希望避免这样做!我真的很感激任何建议。谢谢。
解决方案
好吧,我相信我可能已经找到了我的问题。我注意到我的一个类对象并不总是正确终止,因为它在不同的类中被引用。我解决了这个问题,现在已经 11 天没有任何问题(触摸木头)。所以我有理由相信这是根本原因。但我必须承认,我仍然不太确定为什么这偶尔会损坏工作簿。
推荐阅读
- scala - 如何找到键值对中的共同值并将其作为所有对中的值?
- javascript - Dropdown's onchange is not triggered when selected value is set server side
- java - 空字段包含子字段时的 GSON 转换错误
- verilog - Verilog 中的 32 位除法器与有限状态机控制
- swift - VNDetectFaceRectanglesRequest 没有调用 completionHandler
- dart - flutter 获取布局渲染事件
- unicode - 为什么 NFKC 规范化会丢失上标和下标信息?
- c++ - 为什么基指针可以访问虚函数中的派生成员变量
- sql - 根据最新日期和 SQL Server 2008 R2 中的不同列获取表的最新行
- c# - 在没有静态引用的静态方法中修改另一个类中的类属性