1

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

  1. 我将数据导入到名为RAWDATA

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

  3. 参考=RAWDATA!$A$1位于 的单元格之一中Table1

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

  5. 我尝试更新计算,使用应用程序计算手册进行操作。我还是明白了#REF!

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

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

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

4

1 回答 1

0

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

问题简述:

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

    1. 使用INDIRECT("=RAWDATA!$A$1")而不是=RAWDATA!$A$1.
    2. 单击#REF!单元格的编辑栏,然后按 Enter。

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

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

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

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

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

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

于 2013-07-04T13:49:52.583 回答