代码之家  ›  专栏  ›  技术社区  ›  Karsten W.

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

  •  2
  • Karsten W.  · 技术社区  · 15 年前

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

    这在excel 2007中可行吗?

    4 回复  |  直到 8 年前
        1
  •  3
  •   Alex K.    15 年前

    你可以使用:

    If (cell.HasFormula) then ..
    

    寻找公式。

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

        2
  •  3
  •   mpez0    15 年前

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

        3
  •  1
  •   Karsten W.    15 年前

    为了便于参考(以及升序:-),我最终用vba解决了自动着色问题,而不使用条件格式:

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

    对我来说很好。(发现) here )

        4
  •  1
  •   brettdj    13 年前

    我意识到这已经一年多没有活动了,但考虑到人们反复评论希望避免vba i,尽管它值得发布xlm和range names方法。

    借鉴大卫·黑格的密码 http://j-walk.com/ss/excel/eee/eee003.txt

    1. 定义isformula引用的范围名称:=get.cell(48,indirect(“rc”,false))
    2. 添加条件格式规则“使用公式确定要设置格式的单元格”=isformula到感兴趣的范围并选择颜色

    你就完了

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

    我写了一篇关于使用xlm/range names/conditional formmating来识别外部单元格链接、工作表链接、公式等和 http://www.experts-exchange.com/A_7629.html (请注意,这位于ee付费墙之外,无需会员即可免费使用)