的几个问题都拿出了最近涉及Application.Evaluate
方法从Excel VBA调用。旧的XLM宏语言也暴露了EVALUATE()
函数。两者都可能非常有用。有人知道为什么公开的评估者可以处理一般表达式吗?为什么Excel的“评估”方法是一般表达式评估器?
我自己的预感是,Excel需要给人们一种获取字符串地址范围的方法,并获得命名公式的值,并且只需打开表达式评估程序的入口即可。 (对于VBA版本的帮助的确表达了它将“将Microsoft Excel名称转换为对象或值”的目的)。但是,当然,您不需要评估任意表达式的能力就可以做到这一点。 (也就是说,Excel可以提供Name.Evaluate
方法或其他方法。)
Application.Evaluate
似乎有点......未完成。它的完整行为没有很好的记录,并且存在许多怪癖和局限性(正如Charles Williams在这里所描述的:http://www.decisionmodels.com/calcsecretsh.htm)。
我想答案可能是简单的“为什么不公开呢?”,但我很想知道的决策导致了此功能采取的是它的形式是什么设计。否则,我会有兴趣听到其他预感。
所有的好点,但我想知道为什么让人们评价任意表达式。我会稍微更新我的问题。 – jtolle 2010-04-15 19:38:43
你答案的最后部分确实指出了我的正确方向。评估简单表达式非常有用,但是您不会编写单独的“简单表达式评估器”并将其公开;你只是揭露了整个事情。不过,我想知道为什么粗糙的边缘? – jtolle 2010-04-15 19:53:44
就这么清楚,这个答案是在我编辑它之前的问题,即“为什么Excel会公开'评估'方法?”。这些都是很好的理由。 – jtolle 2010-04-15 20:02:07