如何从一个单元格中提取未评估的公式并在另一个单元格中进行评估?

时间:2015-12-09 15:48:33

标签: excel

我正在制作excel中的公式,我想轻松阅读和修改公式。但是,我仍然希望评估公式。

到目前为止,我一直在一个单独的单元格中重新创建公式并在那里进行评估。这使我的工作暴露于拼写错误或遗忘等,并且通常会浪费时间。我想自动化这个过程。 我的第一次尝试是在一个单元格(c2)中输入公式(例如:a2 + b2),并且只需要第二个单元格读取= c2。然而,这只是使第二个单元格说“a2 + b2”而不进行评估。

如何命令第二个单元格使用第一个单元格中定义的公式?

2 个答案:

答案 0 :(得分:1)

首先在标准模块中放置 U ser D 定义 F unction (UDF)

Public Function eval(strng As String) As Variant
   eval = Evaluate(strng)
End Function

然后选择一个单元格并输入:

=eval(C2)

enter image description here

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      = EVAL(A1)

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!

答案 1 :(得分:1)

没有VBA:

定义姓名EvaC2,参见:

=EVALUATE(Sheet1!$C$2)  

(调整工作表名称以适应),然后输入:

=EvaC2 

请注意,这使用XLM,其剩余寿命可能很短。