如何将实际的excel公式(不是结果)转换为文本字符串

use*_*739 5 excel vba excel-vba

我一直在寻找解决方案,我找不到一个.

假设我输入单元格A1:= if(A2> 1,1,0)

Excel将解释它并返回1或0.

但是,我想要做的是将该公式转换为字符串:'= if(A2> 1,1,0)'

如果按Ctrl +〜进入Excel,您将看到所有公式.总而言之,我想要做的就是采用所有这些公式并使它们成为字符串.

(如果您关心,目的是将这些字符串与另一个工作簿进行比较,以确保我没有删除任何内容)

Bra*_*rad 12

您可以为此创建用户定义的函数.

将此代码放入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
Run Code Online (Sandbox Code Playgroud)

并在工作表中调用它

=GetFormula(A1)
Run Code Online (Sandbox Code Playgroud)

或者如果你想把结果作为 R1C1

=GetFormula(A1,TRUE)
Run Code Online (Sandbox Code Playgroud)


小智 9

使用FORMULATEXT函数.它内置于Excel中.