0

我正在处理电子表格,并且正在尝试执行以下操作:

Price Returned      Net Profit

22                  22
45                  45
7                   7
25+25               50

数据作为表达式输入,以表示特定项目的返回值。我想不通的是如何使下一个单元格等于第一个单元格的表达式值,所以基本上就像单元格是“=22”和“=25+25”。任何帮助将不胜感激。

4

2 回答 2

2

对于这样简单的事情,您可以制作一个 UDF:

Function Evalu8(ByVal S As String) As String
    Evalu8 = Evaluate(S)
End Function

叫,喜欢=Evalu8(A4)

不幸的是,没有内置的工作表函数可以为您完成,但 VBA Evaluate 函数可以节省一天的时间。

于 2012-12-24T03:09:07.287 回答
2

你的问题引发了我对这个SO 问题和@iDevlop 的回答的记忆,这导致了这篇文章(这反过来又与斯蒂芬布伦的网页有一个死链接)。

基本上,您可以使用 Evaluate 函数,它实际上是一个未记录的 Microsoft XLM 宏。您必须以定义的名称使用它,否则您将收到“函数无效”错误消息。由于它确实是一个宏,因此它所在的工作簿需要保存为 .xlm 并且必须启用宏才能使其工作。如果所有这些都对您有用,那么您就是这样做的(如果没有,请查看上述 SO 问题的已接受答案,或@Daniel Cook 的答案,在我处理此答案时弹出):

  1. 在包含计算的工作表中选择 B1(本例中为 Sheet1)
  2. 单击 Ctrl-F3 打开 Excel 的名称管理器
  3. 创建一个新名称并调用它EvaluateCellToLeft
  4. 将范围设置为 Sheet1
  5. 在引用框中,输入=evaluate(Sheet1!A1)

这是它在 Excel 2010 中的外观:

在此处输入图像描述

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

在此处输入图像描述

于 2012-12-24T03:16:11.973 回答