【问题标题】:Excel file crashing mysteriously with no visible reasonExcel文件在没有明显原因的情况下神秘地崩溃
【发布时间】:2015-04-21 08:56:59
【问题描述】:

简介

客户有一个巨大的 Excel 文件,他们在其中为客户创建提案表。这些“建议书”基于 Excel 文件中大约 10 张纸中的 100 个不同公式。每张纸都有不同的宏和公式。所有员工都在 Windows 7 机器上使用 Excel 2010

问题现在是当我们进一步开发这个 Excel 文件时(在 Windows 8.1 上的 Excel 2013 中)添加了一些额外的功能,更新了现有的等等。并将其发回给他们,它工作正常,但是当一些员工编辑文件并将其发送给其他员工时,它突然停止工作并出现以下错误:

已尝试解决方案。

1. 其中一名“破坏”文件的员工重新安装了 Office 2010,但这并没有解决问题。重新安装 Windows确实有效。但当然,他们不能为所有员工重新安装 Windows,而且在编辑 Excel 文件并将其发送给其他人时,仍然有一些“破坏”了 Excel 文件。因此,只有少数人在他们的计算机中有一些不同的东西(我猜与办公软件包无关,因为重新安装办公室没有帮助)搞砸了 excel 文件,然后其他人没有任何问题,当他们收到文件时得到它。

更有趣的是,当其中一名“坏”员工使用文件并保存它时,下次他打开它时一切正常。仅当文件分发给其他人时。

2.我们还删除了 VBA 代码中所有未使用的未使用引用。这在过去曾经是一个问题。我还读到它可能是 Excel 的某些表单(和控件),但我已经删除了所有未使用的表单,现在它只是一个带有简单文本框和 Enter 按钮的表单。

3. 我们使用 office 2010 设置了一个虚拟机,我们尝试在其中复制错误,但那里一切正常。我们要求他们发送文件的损坏版本,但我们没有收到错误消息。我们已经让他们安装了来自 Microsoft 的 2-3 个与此问题相关的修补程序,但没有任何帮助(还有 2014 年 12 月中旬的 Office 更新,它破坏了所有 Excel 控件)。

我知道这是一个非常广泛的问题,但我们问的每个人都是空白的。

【问题讨论】:

  • 您是否尝试过进一步开发Office2010和Windows 7?
  • 只是猜测,因为它需要有关每个用户工作环境的更详细信息,但几乎臭名昭著的更新 KB2553154 引起了类似的问题 - 如果您的所有用户都有更新,它可能会通过获取他们来工作搜索 .exd 文件并删除它们。如果他们不这样做,您可能需要重新创建工作簿,避免使用任何 Active X 控件,以便它为他们工作。 social.technet.microsoft.com/Forums/exchange/en-US/…
  • “我认为没有使用任何 ActiveX 控件,只使用了 excel 中的表单控件”。 TogSep 的引用方式表明它是一个 ActiveX 控件。
  • 如果不再包含该代码,很高兴看到在最新版本中中断的代码部分和错误消息。
  • 如果您确实有 ActiveX 控件但删除了它们,则工作表本身可能已损坏。我也发生过类似的事情,所有对 ActiveX 的引用都被删除了,但工作表中仍然出现了一些错误。我可以解决它的唯一方法是使用相同的代码从头开始重新创建工作表。您还有其他对 Sheet1 的引用吗?它们也有错误吗?或者只是在“立即”窗口中尝试 ?Sheet1.Name。这应该会告诉您该工作表是否无法再被引用。

标签: vba excel excel-2010


【解决方案1】:

您是否尝试过重新创建文件?将其全部复制到新工作簿中。尝试将其保存为不同的 Excel 书籍?喜欢 .xls 而不是 .xlsx 或启用宏的书?

【讨论】:

  • 我尝试重命名,关闭所有办公应用。我没有尝试将其全部复制到新的,因为这几乎是不可能的。有 20 张表,其中包含所有不同的公式,每张表都有不同的宏。我无法将其全部复制到新的...我无法将其另存为 .xls,因为我会丢失所有宏。(?)没有它们,该文件将无法工作。
  • .xls 将保留宏。较新的 .xlsx 将删除它们。
  • 嗯,我一会儿试试。但是问题又出在他们的少数员工身上,因此测试和调试非常困难。我们没有收到该错误...
  • 我能想到的唯一方法是测试看看你是否可以修复它,要么关闭你的客户端,然后有一台 PC 来玩,看看问题。或远程连接到 PC 并在那里玩。如果您在宏或 ActiveX 中使用对 DLL 的任何引用,还需要检查一件事。检查 DLL 和 activeX 对象是否全面相同。我有一个问题,Excel 不适用于某些人。最后,我检查了项目中每个加载的 DLL 的版本号和日期。发现损坏的 DLL 有一个坏的 DLL。
  • 这就是我们现在所等待的。远程连接到他们的两台计算机 - 一台运行正常,一台损坏。我们曾经在代码中有一个奇怪的 DLL 引用,没有人知道它的用途(excel 文件是 2006 年的......是的,告诉我吧:) 但我们删除了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多