从共享网络位置关闭时,Excel有时会崩溃

时间:2016-03-24 17:56:01

标签: excel vba excel-vba

这个问题听起来很广泛而且不具体,但是我尝试了很多东西,并且不知道还有什么地方可以转。

我有一个Excel VBA项目 - 它有数百行代码和几个模块,所以我无法真正发布它。它作为一个模板 - 用户打开文件,对模板进行一系列更改并在某处保存副本。主模板永远不会改变。

一切都很好,除非它经常在用户关闭Excel时崩溃,并且#34; Excel已停止工作"。它崩溃任何打开的Excel文件非常令人沮丧。

仅当从共享网络位置打开文件时才会发生此错误。我从未在本地经历过这种工作。

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

我已经浏览了每个模块和sub以查看是否其中任何一个正在导致崩溃 - 但有时工作簿可能会在关闭时崩溃而不运行任何VBA代码(在Workbook之外。打开代码)< / p>

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

有没有人对我可以进一步解决此问题的方法有任何提示或想法?我一直在努力工作,如果我不能尽快解决,就要聘请专家。谢谢!

**编辑4月15日 - 只是一个更新,如果有人有解决方案仍在搜索答案。我能找到的唯一与此问题相关的是引用共享网络驱动器上的文件。关闭后,有没有人能想到可能导致崩溃的原因?

4 个答案:

答案 0 :(得分:1)

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

我最初会尝试的是以下某些内容。

  1. 在Excel工作簿上尝试使用代码清理程序。这个例如http://www.appspro.com/Utilities/CodeCleaner.htm
  2. 我会考虑尽可能从头开始重新编写工作簿并重新编写代码。我会将代码保存到文本文件中,并从头开始重新编写模块,类,表。
  3. 我要清理你的临时目录。 Excel将VBA对象保存到临时目录。如果它太大会导致问题。
  4. 我检查没有可能影响事物的插件。尝试删除任何未使用的添加以获得最低版本。
  5. 在过去,我遇到了一些早期绑定的库的问题,但更多的是打开导致异常的工作簿。也许您可以尝试删除引用并稍后绑定您的对象 - 当然假设您没有在这些对象中使​​用事件。因此,不要使用Dim x作为SomeObject,而是使用CreateObject(“....”)并删除对库的引用。
  6. 我还要查看Microsoft事件查看器,看看是否可以获取更多信息。一个特定的例外可以帮助您朝着正确的方向发展。
  7. 对不起这些有点模糊,但至少你可以尝试一下。如果没有能够看到正在发生的事情/测试一些可能的理论,很难能够远程提出更具体的建议。

    希望有所帮助。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

可以自动恢复自动恢复。但它将在应用程序级别而不是工作簿级别关闭。因此,请记住在退出不希望使用AutoReceover的工作簿时将其重新打开。

希望这有帮助。

答案 3 :(得分:0)

我在组织中也使用带有共享驱动器的Excel ...可能有很多原因,并且取决于您使用的共享驱动器。如果您使用的是基于Web且与Mac不兼容的共享驱动器,那么它将更加出色。它基本上与办公室共享点有关。

此外,您需要缩短代码并需要在VBA代码中使用Option explicit并描述所有变量。有时由于缺少定义的变量,它将停止工作,excel将停滞不前。

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