我一直在寻找解决方案,我找不到一个。
假设我输入单元格A1:= if(A2> 1,1,0)
Excel将解释它并返回1或0。
但是,我想要做的是将该公式转换为字符串:'= if(A2> 1,1,0)'
如果按Ctrl +〜进入Excel,您将看到所有公式。 总而言之,我想要做的就是采取所有这些公式并使它们成为字符串。
(如果您关心,目的是将这些字符串与另一个工作簿进行比较,以确保我没有删除任何内容)
您可以为此创建用户定义的函数。
将此代码放入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)
使用FORMULATEXT函数。 它内置于Excel中。
我想做的是将该公式转换为字符串:'= if(A2> 1,1,0)'
只需使用单元格的公式属性,这是一个代码示例:
Range("A1").Select
Dim strFormula As String
strFormula = ActiveCell.Formula
MsgBox (strFormula)
您还可以使用查找和替换将空格替换为等号。 实际上删除等号并仅将公式的文本留作字符串。
按照这种方式。
选择要转换为文本的范围(包含公式),也可以选择工作表上的所有范围。
按Control-F使用查找和替换命令,然后用“^”替换“=”按替换全部..全部完成....
如果你想再次使用它作为公式...只需使用查找和替换,然后将“^”替换为“=”只看......所有文本格式的公式转换为公式...
只需右键单击列标题(即A)并选择“格式化单元格”,然后在“数字”选项卡下选择“文本”。 然后在每个单元格中按Enter键,将显示公式而不是结果。