如何将实际的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“文本”。 然后在每个单元格按回车,公式将被显示,而不是结果。