【问题标题】:Excel crippled by block of complex array formulas almost undeletableExcel 因几乎无法删除的复杂数组公式块而瘫痪
【发布时间】:2017-09-13 22:07:12
【问题描述】:

大型 (~300mb) .xlsm 项目几个月的速度慢得离谱(仅加载 ½ 小时)。终于找到了它,我认为以某种方式引用了多个工作表的复杂数组公式被错误地复制到了 200,000 多个单元格中。现在,即使尝试删除或清除这些单元格也会使 Excel 不再响应。

一次清除一个单元格是可行的,但在按下删除键以清除一个单元格后,Excel 需要一分钟以上的时间来响应进一步的输入。所以我拼命地写了一个小宏来一次清除一个并让它运行一整夜,但它只删除了大约 200 个单元格......按这个速度将需要 1000 多天。

显然问题已经存在了一段时间,因此它存在于所有几乎有用的备份中。违规工作表与文件中其他工作表的链接太多,无法尝试分离/复制/复制它。试图尝试一些东西:安全模式,但它没有帮助。有人知道我该如何解决这个问题吗?

【问题讨论】:

  • 您在运行代码之前是否尝试关闭自动计算?
  • 谢谢,但是是的。此外,令人费解的是,为什么即使删除一个单元格也要花这么长时间,因为依赖于我要清除的单元格的单元格数量为零。
  • 那么很有可能你有不稳定的函数,比如 Indirect,Address,Offset...

标签: excel


【解决方案1】:

过去我也遇到过类似的问题,几乎不可能纠正破损的纸张。我能够通过创建新工作表并将数据复制到新工作表中来“修复”它。

这些步骤解释了我是如何在不破坏公式和格式的情况下做到这一点的。

  1. 在 excel 中,按 Ctrl-波浪号(波浪号在选项卡上方:~)以显示每个单元格的公式或值。
  2. 复制工作表中的范围并粘贴到记事本中。您可以复制/粘贴整张纸,但我不明白您正在尝试删除某些行/列。
  3. 复制粘贴到记事本中的内容并将其粘贴到新工作表中。 这将删除任何指向损坏的 Excel 工作表的链接。 (将粘贴 =A1 而不是 ='C:\Users\name\Desktop\filename.xlsm]Sheet7'!$A$1
  4. 选择整张损坏文件并使用格式刷将损坏表的格式应用于新表(格式刷在 excel 表之间工作)

对工作簿中的每个工作表都执行此操作,并且应该修复它。 修复它可能需要一些时间,但一旦完成,您将在使用文件时节省时间。

【讨论】:

    【解决方案2】:

    谢谢大家。 是的,工作簿有挥发物,快速测试暗示他们显然使情况变得更糟,但不是整个问题。 几天在这里尝试所有建议和其他建议,包括向它扔更多的物理内存(仍然受到打击)。 “解决方案”,如果可以直截了当地说的话,就是删除整个有问题的标签/工作表,痛苦地重新创建它。 Ctrl-波浪号是一个很好的建议(尽管小写风格(Ctrl-`)实际上是有效的)。 可怕的副作用,原因不明,整个 VBA 项目和工作表到 VBA 的链接消失了。从备份中恢复代码,重新创建链接,但也许是一个线索。 这本书仍然很大而且速度很慢,但现在只能在有限的访问 Not Responding 土地上工作。再次感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-18
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      相关资源
      最近更新 更多