![如何将未求值的数学公式保存在 Excel 的一个单元格中,并在另一个单元格中对其进行求值?](https://linux22.com/image/1387819/%E5%A6%82%E4%BD%95%E5%B0%86%E6%9C%AA%E6%B1%82%E5%80%BC%E7%9A%84%E6%95%B0%E5%AD%A6%E5%85%AC%E5%BC%8F%E4%BF%9D%E5%AD%98%E5%9C%A8%20Excel%20%E7%9A%84%E4%B8%80%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%EF%BC%8C%E5%B9%B6%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%E5%AF%B9%E5%85%B6%E8%BF%9B%E8%A1%8C%E6%B1%82%E5%80%BC%EF%BC%9F.png)
我想要 Excel 中有两个单元格:
在第一个方程(fx A1)中我想要得到一个像2 + 2
在第二个方程(fx A2)中我想要得到解 = 4。
我该怎么做?
答案1
首先在标准模块中输入以下UDF:
Public Function eval(strng As String) As Variant
eval = Evaluate(strng)
End Function
然后在 A2 中输入:
=评估(A1)
用户定义函数 (UDF) 非常容易安装和使用:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要从 Excel 使用 UDF:
=我的函数(A1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
和
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
有关 UDF 的详细信息
必须启用宏才能使此功能起作用!
答案2
您可能无法使用工作表函数完全完成您想要的操作,这是在这里回答这是设计使然。
您可以使用 VBa 实现这一点(并且您的帖子没有说明是否使用 VBa,因此我认为没有),或者您可以could
寻找旧的 XLM GET.FORMULA(),但是 VBa 更好(并且我对 XLM 一无所知)
你可以做类似的事情
=FORMULATEXT(formulaCell)
FORMULATEXT requires the morefunc.xll add-in.
但是,作为一种解决方法,并基于您问题中的确切示例,您可以执行以下操作(有效)
=SUM(LEFT(A1,1),RIGHT(A1,1))
这仅在公式为 N+N(其中 N 为 1 位数字)时才有效,但根据您拥有的数据行数,这可能适合您的需要!