2013-07-03 95 views
1

说明当Excel计算错误:在Excel中创建我的应用程序的新工作表

  1. 我的数据导入到一个名为片RAWDATA

  2. 另一种已经存在的表Table1是由细胞的数据填充其中包含对RAWDATA的引用。

  3. 参考=RAWDATA!$A$1Table1的其中一个单元格中。

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

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

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

我该怎么做才能解决这个问题?

请注意,我只能使用工作表函数来获取表的值,而不是VBA代码。

+0

嗨karamell,有趣的问题!很难赶上,鉴于上述信息..你可以尝试用'= INDIRECT(“RAWDATA!$ A $ 1”)替换你的公式吗?这可以工作,当你得到一个'#REF!'错误。只是很难猜测.. – Ioannis

+0

重建依赖树有帮助吗?按CTRL + ALT + SHIFT + F9一起做到这一点。 – brettdj

+0

Ioannis:它实际上在A1包含一个简单整数时起作用。 A1在我的情况下是一个日期。如果我使用'= Year(INDIRECT(“RAWDATA!$ A $ 1”))'它会返回正确的值,但是'= INDIRECT(“Year(RAWDATA!$ A $ 1)”)''返回'#REF!'。谢谢。 – karamell

回答

0

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

问题简要:

  • =RAWDATA!$A$1返回#REF!错误。
  • #REF!误差不走与重新计算,但它的消失:

    1. 使用INDIRECT("=RAWDATA!$A$1"),而不是=RAWDATA!$A$1
    2. 单击#REF!单元格的配方栏并按Enter键。

我相信,Excel不能识别你从其他应用程序导入的数据类型。因此,对此数据的引用会导致#REF!错误。

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

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

由于某些原因,当您重新计算工作表时,excel的自动转换工具不起作用,但它在您激活参考单元并按下回车键时起作用(因此只有单元格被重新计算)。另外,它由INDIRECT触发。

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

PS:INDIRECT是一个易失性函数(它每次重新计算时都会重新评估),但由于重新计算不起作用,所以这可能是无关紧要的。

+1

我试图将单元格引用到包含字符串的单元格。我仍然遇到了#REF!错误。为“INDIRECT”解决方案竖起大拇指。 – karamell

相关问题