我一直在寻找解决方案,但未能找到。
假设我在单元格A1中键入:=if(A2>1,1,0)
Excel会对其进行解释,并返回1或0。
然而,我想要的是将该公式文字转换为字符串:'=if(A2>1,1,0)'
如果您在Excel中按Ctrl+~,则可以看到所有公式。总之,我的目的是将所有这些公式都变成字符串。
(如果您关心的话,目的是将这些字符串与另一个工作簿进行比较,以确保我没有删除任何内容)
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)
使用内置的Excel函数FORMULATEXT。
Range("A1").Select
Dim strFormula As String
strFormula = ActiveCell.Formula
MsgBox (strFormula)
只需按照以下步骤操作:
选择您想要转换为文本的范围(包含公式),或者您可以选择工作表上的所有范围。
使用查找和替换命令,按下 Control-F 键,然后将“=”替换为“^”,点击全部替换即可完成。
如果您想再次将其用作公式...... 只需使用查找和替换功能,然后将“^”替换为“=”, 看一下......所有以文本格式呈现的公式都已转换为公式......
R1C1
是更好的选择,因为如果一行(或列)中的所有公式都相同,则只需要比较此范围内的一个单元格即可。 - brettdj