我遇到Range.Formula
问题。该代码段是低于(假设Range对象已创建与is not null)Range.Formula返回一个使用单元格引用的字符串,为什么?
string formula;
formula = Range.Formula;//it returns whatever is written in the formula, even the cell reference
比方说,我有这样一个公式,=MyCalc(41, A1)
,使用相对单元格引用。在单元格A1中,有一个值为100.
因此,字符串变量formula
的值总是=MyCalc(41, A1)
而不是=MyCalc(41, 100)
,这是我想要的结果。
我不知道是否有办法让Range.Formula避免返回单元格引用。有任何想法吗?谢谢
难道这不归结为神奇的想法 - 你希望它做一些*评估公式,并替换引用的单元格值,但不评估完整的公式(例如调用MyCalc并只给你结果)?你为什么期望它做到这一点? – 2012-01-27 07:44:31
我无法将一个带有单元格引用的公式传递到Web服务上,因为它会产生错误的结果。所以我需要做一些预处理,并重构其中会有值的公式。 – woodykiddy 2012-01-27 08:30:04
您正在申请一个错误 - 公式必须是输入的公式,其他任何结果都不正确。您可以尝试使用Evaluate从公式中获取结果(如果上游依赖链中存在未计算的单元格,则可能会失败),或者来自单元格的当前值,但单元格中的公式是单元格中的公式。 – 2012-01-27 08:41:45