如何将实际的Excel公式(不是结果)转换为文本string
我一直在寻找一个解决scheme,我找不到一个解决scheme。
假设我input单元格A1:= if(A2> 1,1,0)
Excel将解释这一点,并返回1或0。
但是,我想要做的是从字面上将该公式转换为string:'= if(A2> 1,1,0)'
如果您按Ctrl +〜到Excel中,您将看到所有的公式。 基本上,我想要做的,就是采取所有这些公式,并把它们串起来。
(如果你关心,目的是把这些string与另一个工作簿进行比较,以确保我没有删除任何东西)
您可以为此创build一个用户定义的函数。
把这段代码放入一个Module
(不是工作表代码表,类或表单)
Function GetFormula(rng As range, Optional asR1C1 As Boolean = False) As String If asR1C1 Then getFormula = rng.FormulaR1C1 Else getFormula = rng.Formula End If End Function
并在你的工作表中调用它
=GetFormula(A1)
或者如果你想要的结果为R1C1
=GetFormula(A1,TRUE)
使用FORMULATEXTfunction。 它内置在Excel中。
我想要做的是从字面上将该公式转换成string:'= if(A2> 1,1,0)'
只需使用单元格的“公式属性”,以下是一个代码示例:
Range("A1").Select Dim strFormula As String strFormula = ActiveCell.Formula MsgBox (strFormula)
您也可以使用查找和replace将等号replace为空白。 实际上删除等号并仅将公式的文本保留为string。
只需右键单击列标题(即A),然后select“格式化单元格”,然后在“数字”选项卡下select“文本”。 然后在每个单元格按回车,公式将被显示,而不是结果。