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

我正在做一个公式在Excel中,我想轻松地阅读和修改公式。 但是,我仍然想要评估公式。

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

我怎样才能命令这第二个细胞利用第一个定义的公式?

首先将这个用户定义的函数(UDF)放在一个标准模块中:

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

然后select一个单元格并input:

 =eval(C2) 

在这里输入图像说明

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

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

= EVAL(A1)

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

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

macros必须启用这个工作!

没有VBA:

定义名称说EvaC2与指:

 =EVALUATE(Sheet1!$C$2) 

(调整表格名称以适应),然后input:

 =EvaC2 

注意这里使用的XLM的剩余寿命可能很短。