如何使一个单元格等于另一个单元格中的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的答案):

  1. 在工作表中selectB1(本例中为Sheet1)
  2. 点击Ctrl-F3打开Excel的名称pipe理器
  3. 创build一个新名称,并将其称为EvaluateCellToLeft
  4. 将范围设置为Sheet 1
  5. 在指向框中,input=evaluate(Sheet1!A1)

这是它在Excel 2010中的外观:

在这里输入图像说明

现在在B列中input=EvaluateCellToLeft 。 请记住,这是一个命名的范围,而不是一个公式,所以最后没有括号。

在这里输入图像说明