我们有一个在 Excel 2003 中每天使用多年的工作簿。
我们现在正在迁移到Excel 2010,并且遇到了以下问题。
当在 2010 年(64 位 Windows 7 上的 32 位版本)中打开工作簿(干净打开,没有其他工作簿)并且我们尝试计算任何工作表(即使是最简单的工作表)时,我们收到以下错误:
“Microsoft Excel 无法计算公式。打开的工作簿中存在循环引用,但无法为您列出导致该问题的引用。请尝试编辑您输入的最后一个公式或使用撤消命令将其删除。”
这在 2010 的 64 位版本中似乎不会发生。
如果我们在 Excel 2003 中打开工作簿,则不会出现计算问题。如果我们在 2003 中打开工作簿并计算一张工作表 (shift-F9),甚至计算一个对另一个单元格 (=E4) 的简单引用的单元格,然后保存工作簿,则不会出现完全相同的行为:在 2010 中打开时,我们可以计算各种工作表 (shift-F9 或 worksheet.calculate),但在运行宏来计算工作簿中的所有工作表时,它会在某个工作表上崩溃。同样,这不会发生在 64 位版本的 2010 中。
有其他人在 Excel 2010 32 位版本中遇到过 Excel 2003 工作簿的这个问题吗?我找不到任何与此描述相关的参考资料。谢谢。
答案1
好的,是时候给出一个答案了,这个答案将进入负面投票领域并留在那里......
是的,我可以告诉你这是真的:你没有循环引用,任何地方,而 Excel 告诉你你有一个循环引用......某处。
有时,它会告诉你看这儿!在绝对不参与循环引用链并且通常根本没有依赖项的单元格中。
微软永远不会承认这个问题并且永远不会修复它。
本网站和其他网站的大量贡献者永远不会承认你做实际上有一个工作表根本没有任何循环引用,但它仍然会引发虚假错误消息。他们也陷入了虚假的循环循环中,并且只会通过给您越来越傲慢的回应来做出回应,解释如何通过遵循您永远看不到的循环引用解决对话框来轻松修复您实际上没有的循环引用。
这种错误最令人恼火的情况是当您确实遇到循环错误时:您找到了它,修复了它,但现在您不断在没有依赖项、没有先例、也没有条件格式的单元格中收到虚假的“循环引用”错误。
我必须强调的是,你没有循环引用。
相信自己,不要放弃,并开启迭代计算作为缓解措施。
现在来看看坏消息: 没有确定性的解决办法。
但无论如何,让我们尝试一下,并告诉您如何使用它作为临时解决方案:
你可以有时通过删除数组公式、保存并关闭文件并恢复数组来解决此问题。
你可以有时通过删除查找和条件总和公式、保存并关闭文件以及恢复查找和条件来解决此问题。
几天后,当以这种方式“修复”该问题并对其进行深度计算时,问题将会再次出现。
但是,如果你是那种总是在停车计费器的“出”口里寻找丢失的硬币的人,我会给你一个建议,让你感觉肮脏的:
将临时修复的文件保存为只读,并让系统管理员设置所有权和权限,以便此“主”副本永远不会被用户更改。
该文件对于任何将其带到其他地方并单击“另存为...”的人来说都是“地雷”,但现在再次出现“循环错误”消息他们的问题。
...一个可能有效的修复程序,但我从未成功过:
我从来没有成功地通过从 xml 中删除 CalculationChain 对象并重建文件来根除该问题:但无论如何还是尝试一下,因为我听说它曾经对某人起作用过。
...实际上这个修复方法有效,但是没人愿意使用:
我只能通过打开新工作表并复制公式、格式和条件格式来修复它 - 在单独的复制操作中,不是结合简单的 ctrl-c 和 ctrl-v - 一次一张纸,然后手动重新创建 Names 集合。
我已经通过哈希签名验证了新旧表格的文本和公式是相同的,并且我毫不怀疑公式确实相同。
并且新文件可以正常工作,不会再引发虚假的“循环引用”错误。
就是这样。全部都是。没有其他可靠的答案。
脚注:
如果你来这里是为了寻找“Excel+虚假+循环+引用”——每隔几周左右就会有人这样做,在大卫·麦金托什和我成为考古学家在研究高地位的陪葬品和特殊物品时激烈争论的主题之后很长一段时间,具有仪式意义' 在我们精心装饰的石棺中——我完全相信你觉得这个建议极其没胃口;而且我完全理解你可能会把它存起来作为最后的手段。
如果你只发现这一点,我觉得我应该道歉后读到几条同样精彩但误导性的建议,说你的问题是由于使用了太多 IF() 分支而导致的,你根本就不应该使用它们。这些特定的邪教信徒是导致考古学家真正应该更仔细阅读的那些险恶铭文的原因,也是导致他们的挖掘团队的几名成员莫名失踪的原因。