如何确定Excel中的单元格是包含数字/文本还是公式?

时间:2010-04-09 13:04:08

标签: excel excel-vba excel-2007 vba

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

这在Excel 2007中是否可行?

4 个答案:

答案 0 :(得分:3)

您可以使用:

If (cell.HasFormula) then ..

寻找公式。

(这将避免文字字符串字段以“=”开头的问题)

答案 1 :(得分:3)

AFAIK,没有易于访问的工作表函数或条件来测试公式。如果范围中的每个单元格(可以是单个单元格)都有公式,则VBA提供range.HasFormula方法,该方法返回true。

答案 2 :(得分:1)

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

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

对我来说很好。 (找到here

答案 3 :(得分:1)

我意识到这已经过去了一年多,但考虑到一再希望避免VBA的评论我虽然值得发布带有范围名称方法的XLM。

借鉴了来自http://j-walk.com/ss/excel/eee/eee003.txt

的David Hager的代码
  1. 定义范围名称IsFormula是指:= GET.CELL(48,INDIRECT(“rc”,FALSE))
  2. 添加条件格式规则“使用公式确定要格式化的单元格”= IsFormula到感兴趣的范围并选择颜色
  3. 你已经完成了

    使用XLM的历史优势在于它允许VBA编码而不提供宏警告。 XLM的存在现在标记了类似的内容警告,但是能够应用这些条件格式XLM技巧而不必在后台触发VBA事件仍然很有用。

    我写了一篇关于使用XLM /范围名称/条件表格制作来识别http://www.experts-exchange.com/A_7629.html 的外部单元格链接,表格链接,公式等和不一致公式的更长文章(请注意,这不在EE之内付费墙,无需会员即可免费使用)