Answers:
使用条件格式。选择“使用公式来确定要格式化的单元格”选项,然后键入“ = NOT(Cellhasformula)”。这将格式化任何硬编码的内容。
=iferror(Formulatext(cell),"Not Formula")
或仅显示公式:
=iferror(Formulatext(cell),"")
另外两种方法是
我知道您说过首选非VBA,但如果最终没有其他解决方案,Range对象将具有HasFormula属性。
返回:如果范围内的所有单元格都包含公式,则返回true;否则返回false。如果该范围内的所有单元格都不包含公式,则为False;否则为false。否则返回null。
来源:http : //msdn.microsoft.com/en-us/library/bb208626%28v=office.12%29.aspx
如果要以无宏工作簿格式存储Excel文件,则应避免使用VBA和宏(即其他答案中建议的XL4 / XLM方法)。在这个答案中,我假设没有宏的Excel文件。
如果您使用MS-Excel 2013,则可以使用:
=ISFORMULA(reference)
如果使用旧版MS-Excel(例如2010、2007),则没有真正的功能来确定单元格是否包含公式。但是,您可以使用以下方法对其进行近似:
=IF(OR(ISBLANK(reference);CELL("prefix";reference)<>"");FALSE;IF(CELL("type";reference)="l";TRUE;"MAYBE"))
上面的函数返回:
早于原始日期,但是如果任何人都可以使用,我设法通过选择单元格范围来解决此问题,然后使用“替换”(Ctrl + H),将其设置为“查找”“公式”并替换为等于 =
撇号等于'=
这带出了所有公式,但显然也会转换类似$ C $ 1的内容 =if($A1=$B1,"Match","Different")
转换为'=if($A1'=$B1,"Match","Different")
注意 A1'=B1
公式中间的,虽然可能有问题,但仍然意味着您可以看到这些公式,尽管这不是实用的。可以使用SUBSTITUTE函数将其改回,因此$ D $ 1包含=SUBSTITUTE(C1,"'=","=")
,然后将其复制到记事本中并粘贴回$ E $ 1
另一种方法是“显示公式”,但它将显示每个单元格的公式,而不仅仅是选定的范围。