【问题标题】:Excel Crashing Sometimes When Closed from Shared Network Location从共享网络位置关闭时,Excel 有时会崩溃
【发布时间】:2016-04-17 19:14:16
【问题描述】:

这个问题听起来很宽泛而且不具体,但我已经尝试了很多方法,不知道该去哪里。

我有一个 Excel VBA 项目 - 它有数百行代码和几个模块,因此我无法将其全部发布。它作为模板工作——用户打开文件,对模板进行大量更改并在某处保存副本。主模板永远不会改变。

一切都很好,除了当用户关闭 Excel 说“Excel 已停止工作”时它经常崩溃。它使任何打开的 excel 文件崩溃,非常令人沮丧。

此错误仅在从共享网络位置打开文件时发生。我从来没有在本地工作过。

没有执行 .BeforeClose 的 VBA 代码可能会产生干扰。在工作簿打开时,我将其设置为获取两个不同的 CSV 文件并从中复制数据。

我已经检查了每个模块和子模块,看看它们中是否有任何导致崩溃 - 但有时工作簿可能会在关闭时崩溃而没有运行任何 VBA 代码(在 Workbook.Open 代码之外)

此外,在“只读”模式下它永远不会崩溃(主文件始终是只读的) - 只有当用户在某处保存副本后才会开始崩溃。

是否有人对我可以在哪里进一步解决此问题有任何提示或想法?一直在研究这个,如果我不能很快解决,就要聘请专家。谢谢!

**edit 4/15 - 只是一个更新,如果有人有解决方案,仍在寻找答案。我唯一能找到的与该问题相关的是引用共享网络驱动器上的文件。关闭后,任何人都可以想到可能导致崩溃的原因吗?

【问题讨论】:

  • 好吧,这是一个疯狂的猜测,但我只能想象它有关系,Excel在检查它是否应该显示保存文件对话框时遇到一些问题,你是否尝试覆盖 Auto_Close () 函数?
  • 尝试不使用 VBA 代码、不使用模板格式或不使用数据,以更好地了解问题的根源。因为它有太多的因素。
  • 来自事件查看器的任何提示?事件查看器 --> 应用程序和服务日志 --> Microsoft Office 警报。某些加载项可能会导致此问题,请尝试安全模式 Excel:EXCEL.EXE /safe
  • 不幸的是,我遇到了同样的问题,我通过扫描微软论坛发现,在检查了插件等并使用安全模式后,他们在使用不同版本的转换过程中解决了很多问题office 似乎 Microsoft 应用程序崩溃的大多数问题都出现在 Office 13 上。这可能是由于人们使用在共享网络上运行的不同版本的 office 以及迄今为止大家讨论的各种问题。
  • 哦,是的,这是一个很好的观点。因此,我遇到了兼容性问题。也许尝试将工作簿保存为旧版本,看看是否遇到同样的问题。

标签: vba excel


【解决方案1】:

这类问题很难说。我认为这对你来说是一个反复试验的案例。

我最初会尝试以下一些。

  1. 在您的 Excel 工作簿上尝试使用代码清理器。这个例如http://www.appspro.com/Utilities/CodeCleaner.htm
  2. 如果可能,我会考虑从头开始重新构建工作簿并重新复制代码。我会将代码保存到文本文件中,然后重新制作模块、类和工作表。
  3. 我会清理您的临时目录。 Excel 将 VBA 对象保存到临时目录。如果它变得太大,则会导致问题。
  4. 我会检查是否有可能影响事物的插件。尝试删除任何未使用的添加以实现最低构建。
  5. 过去,我遇到过一些早期绑定的库的问题,但这更多是因为打开导致异常的工作簿。也许您可以尝试删除引用并后期绑定您的对象 - 当然假设您没有在这些对象中使​​用事件。因此,不要使用 Dim x 作为 SomeObject,而是使用 CreateObject("....") 并删除对库的引用。
  6. 我还想查看一下 Microsoft 事件查看器,看看您是否可以获得更多信息。一个特定的例外可能会帮助您朝着正确的方向前进。

抱歉,这些有点含糊,但至少您可以尝试一下。如果无法查看正在发生的事情/测试一些可能的理论,就很难远程给出更具体的建议。

希望对您有所帮助。

【讨论】:

  • 我会在这里尝试第二点。我以前也有过这种情况,但是重建它修复了它。不知道真正的问题是什么。
【解决方案2】:

打开一个新的 Excel 实例,导航到您的文件,单击一次,单击“打开”按钮上的向下箭头,然后单击“打开并修复”。这有帮助吗?

【讨论】:

  • 不幸的是,这不起作用 - 在“Microsoft Excel 已停止工作”错误之前,我完成了 7 次打开和关闭。不过感谢您的回复,感谢您的帮助!
【解决方案3】:

一个原因可能是由于自动恢复。当 AutoRecover 正在保存备份副本并且用户也尝试保存时,Excel 很有可能会因网络路径上的文件而崩溃。默认情况下,自动恢复每 10 分钟运行一次,这也很频繁。我不太确定它为什么会崩溃,可能是由于网络延迟。

AutoRecover 可以通过编程方式关闭。但它将在应用程序级别而不是工作簿级别关闭。因此,请记住在退出您不想使用 AutoReceover 的工作簿时将其重新打开。

希望这会有所帮助。

【讨论】:

  • 我以前没有听说过,这听起来很有希望 - 我会在有时间的时候进行一些测试,如果这是答案,我会更新。不管怎样,谢谢!
  • 是的,但我不太希望这真的是答案......有时工作簿在长时间编辑后变得讨厌,也许从头开始可能是答案......但是首先让我们希望这会有所帮助,手指交叉
【解决方案4】:

我也在我的组织中使用带有共享驱动器的 Excel... 可能有很多原因,具体取决于您使用的共享驱动器。如果您使用的是基于 Web 且与宏不兼容的共享驱动器,它将卡在 Excel 中。这基本上是办公室共享点的问题。

您还需要缩短代码并需要在 VBA 代码中使用 Option explicit 并描述所有变量。有时由于缺少定义的变量,它会停止工作并且excel会卡住。

您还需要在 excel 中禁用 ADD-INS 以使其更快地工作。如果您可以共享代码,人们可以更好地说明为什么它不能完美运行。如果您可以共享您正在使用的共享驱动器类型,我们也可以检查一下,因为我过去也遇到过同样的事情,并且我处理了我的代码并再次共享驱动器。

【讨论】:

    猜你喜欢
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多