【问题标题】:Excel calculation error when creating new sheet创建新工作表时 Excel 计算错误
【发布时间】:2013-07-03 15:37:28
【问题描述】:

我在 Excel 中的应用程序描述:

  1. 我将数据导入到名为RAWDATA的工作表

  2. 另一个已经存在的工作表Table1 将由包含对RAWDATA 的引用的单元格中的数据填充。

  3. 引用=RAWDATA!$A$1 位于Table1 的单元格之一中。

  4. 当我运行应用程序时,前面提到的单元格返回#REF!。

  5. 我尝试更新计算,使用应用程序计算手册进行操作。我仍然收到#REF!。

  6. 我在#REF! 单元格的编辑栏中单击。按回车。它计算正确。

我能做些什么来解决这个问题?

请注意,我只能将工作表函数用于获取表格值的过程,而不是 VBA 代码。

【问题讨论】:

  • 嗨,karamell,有趣的问题!鉴于上述信息,很难捕捉到。你可以尝试用=INDIRECT("RAWDATA!$A$1")替换你的公式吗?当您收到 #REF! 错误时,这可能会起作用。只是很难猜测..
  • 重建依赖树有帮助吗?同时按下 CTRL+ALT+SHIFT+F9 即可。
  • Ioannis:当 A1 包含一个简单的整数时,它确实有效。在我的情况下,A1 是一个日期。如果我使用=Year(INDIRECT("RAWDATA!$A$1")) 它返回正确的值,但=INDIRECT("Year(RAWDATA!$A$1)") 返回#REF!。谢谢。
  • brettdj:不幸的是还是和以前一样
  • 后者不起作用,因为'Year'首先作用于单元格,并且单元格本身存在一些问题。 'INDIRECT' 紧随其后,有一个错误参数,所以返回错误。如果有人知道幕后发生了什么,我也很想学习。

标签: excel excel-formula worksheet-function vba


【解决方案1】:

可以假设一个可以解释这种行为的理论。不过,我想听听专家对这个问题的意见。

问题简介:

  • =RAWDATA!$A$1 返回 #REF! 错误。
  • #REF! 错误不会随着重新计算而消失,但会消失:

    1. 使用INDIRECT("=RAWDATA!$A$1") 代替=RAWDATA!$A$1。
    2. 单击#REF! 单元格的编辑栏并按回车键。

我相信 excel 无法识别您从其他应用程序导入的数据类型。因此,对该数据的引用会导致#REF! 错误。

你能检查一下这个说法是否属实吗? 如果它是假的,它会使下面写的任何内容无效。

Excel 具有内置的自动转换机制。例如,如果一个单元格被格式化为文本,但它看起来像一个数字(比如“10”),那么向其中添加一个数值是合法的,因为 excel 在内部将该文本转换为一个数字。

由于某种原因,excel的自动转换工具在重新计算工作表时不起作用,但在激活参考单元格并按回车时起作用(所以当仅重新计算单元格时) .此外,它由INDIRECT 触发。

所以我倾向于认为推断单元格值类型的机制是由INDIRECT 和在公式栏中按 Enter 引起的,而不是通过重新计算工作表。

PS:INDIRECT 是一个 volatile 函数(每次 excel 重新计算时都会重新计算)但由于重新计算一开始就不起作用,这可能无关紧要。

【讨论】:

  • 我试图将单元格引用到包含字符串的单元格。我仍然收到#REF! 错误。为INDIRECT 解决方案点赞。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多