如何使一个单元格等于另一个单元格中的expression式的值(Excel 2010)?
我正在做一个电子表格,我正在尝试做这样的事情:
Price Returned Net Profit 22 22 45 45 7 7 25+25 50
数据被作为expression式input,以表示特定项目的返回值。 我不知道如何使下一个单元格等于第一个单元格的expression式值,所以基本上就好像单元格是“= 22”和“= 25 + 25”。 任何帮助将不胜感激。
对于这样简单的事情,你可以做一个UDF:
Function Evalu8(ByVal S As String) As String Evalu8 = Evaluate(S) End Function
叫,就像=Evalu8(A4)
不幸的是,没有内置的工作表函数会为您做,但VBA 评估函数节省了一天的时间。
你的问题引发了我对这个SO问题的记忆和@ iDevlop的回答,这导致了这个post (反过来, 这个post和Stephen Bullen的网页有一个死链接)。
基本上,您可以使用Evaluate函数,它实际上是一个未logging的Microsoft XLMmacros。 您必须以定义的名称使用它,否则您将收到“The Function is Not Valid”错误消息。 而且,由于它实际上是一个macros,所以它的工作簿需要保存为一个.xlm,并且必须启用macros以使其工作。 如果所有这些都适合你,那么你应该怎么做(如果没有,请看上面这个SO问题的答案,或者@Daniel Cook的回答,下面是我在做这个答案时popup的答案):
- 在工作表中selectB1(本例中为Sheet1)
- 点击Ctrl-F3打开Excel的名称pipe理器
- 创build一个新名称,并将其称为
EvaluateCellToLeft
- 将范围设置为Sheet 1
- 在指向框中,input
=evaluate(Sheet1!A1)
这是它在Excel 2010中的外观:
现在在B列中input=EvaluateCellToLeft
。 请记住,这是一个命名的范围,而不是一个公式,所以最后没有括号。