我怎样才能找出Excel中的单元格是否包含数字/文本或公式?

我喜欢做的是有条件地格式化单元格,取决于单元格是否包含公式(以“=”开头)。

这在Excel 2007中是否可行?

您可以使用:

If (cell.HasFormula) then .. 

寻找公式。

(这将避免string字段以“=”开始的问题)

AFAIK,没有现成的工作表函数或有条件testing公式。 VBA提供了range.HasFormula方法,如果范围内的每个单元格(可以是单个单元格)都有一个公式,则返回true。

仅供参考(和upvoting :-)),我终于解决了使用VBA自动着色,而不使用条件格式:

 dim ws as Worksheet for each ws in thisworkbook.sheets ws.Cells.SpecialCells(xlCellTypeFormulas).Font.ThemeColor = xlThemeColorAccent1 next ws 

对我来说工作得很好。 (在这里find)

我意识到这一年来一直没有活动,但考虑到希望避免VBA的反复的意见,我虽然这是值得发布与范围名称的XLM方法。

借鉴http://j-walk.com/ss/excel/eee/eee003.txt的 David Hager的代码

  1. 定义范围名称IsFormula引用:= GET.CELL(48,INDIRECT(“rc”,FALSE))
  2. 添加一个条件格式规则“使用一个公式来确定哪些单元格式”= IsFormula到感兴趣的范围并select你的颜色

你完成了

使用XLM的历史优势是它允许VBA像编码一样没有提供macros观警告。 现在,XLM的存在标志着类似的内容警告,但能够应用这些条件格式化XLM技巧仍然有用,而不必在后台触发VBA事件。

我已经写了一篇关于使用XLM /范围名称/条件expression式来识别外部单元格链接,表单链接,公式等以及http://www.experts-exchange.com/A_7629.html中不一致的公式的更长的文章(请注意,这位于EE paywall之外,不需要会员资格即可免费访问)