我在Excel中的应用程序说明:
我将数据导入名为RAWDATA
另一个现有的工作表Table1
将由包含对RAWDATA
的引用的单元格中的数据进行填充。
引用=RAWDATA!$A$1
位于Table1
的其中一个单元格中。
运行应用程序时,前面提到的单元格返回#REF!
。
我尝试更新计算,使用应用程序计算手册进行操作。我仍然得到#REF!
。
我点击#REF!
单元格的公式栏。按enter键。它会正确计算。
我该怎么做才能解决这个问题?
请注意,我只能使用工作表函数来获取表的值,而不是VBA代码。
答案 0 :(得分:0)
可以假设一种可以解释这种行为的理论。但是,我想听听专家对此事的看法。
问题简述:
=RAWDATA!$A$1
返回#REF!
错误。 #REF!
错误不会因重新计算而消失,但它会消失:
INDIRECT("=RAWDATA!$A$1")
代替=RAWDATA!$A$1
。#REF!
单元格的公式栏,然后按Enter键。我相信excel无法识别您从其他应用程序导入的数据类型。因此,对此数据的引用会导致#REF!
错误。
你能检查一下这个说法是否属实? 如果它是假的,它会使下面写的任何内容无效。
Excel具有内置的自动转换机制。例如,如果一个单元格被格式化为文本但看起来像一个数字(比如“10”),那么向其添加数值是合法的,因为excel在内部将该文本转换为数字。
出于某种原因,当您重新计算工作表时,excel的自动转换工具不起作用,但是当您激活参考单元格并按Enter键时它会起作用(所以当仅重新计算单元格时) 。此外,它由INDIRECT
触发。
所以我倾向于认为推断单元格值类型的机制是由INDIRECT
和按公式栏中的Enter键引起的,而不是通过重新计算表单。
PS:INDIRECT
是一个易变函数(每次excel重新计算时都会重新评估),但由于重新计算首先不起作用,这可能无关紧要。