【问题标题】:How to determine if a formula or a manual entry has been written in a cell如何确定单元格中是否已写入公式或手动输入
【发布时间】:2014-04-08 02:07:42
【问题描述】:

我有一个包含公式的单元格/整列。有时我会进入该单元格并手动将该值更改为不同的值。公式消失并被手动输入覆盖。以后如何确定该单元格是使用公式自动输入还是手动输入?在条件格式或其他地方是否有一些规则或技巧可以向查看者表明该单元格已被覆盖或该单元格正在由通用公式制定。

一个例子....

如果公式添加了一个选定的范围并给出了一个值,并且该单元格现在是红色的。如果我在该单元格中手动输入一个值,该单元格现在会看到该值并将其变为“蓝色”,因为它是手动输入的。 excel中是否有逻辑可以区分这一点?谢谢

【问题讨论】:

    标签: excel excel-2007 excel-formula excel-2010 vba


    【解决方案1】:

    UPD:

    1) 添加UDF:

    Function hasFormula(r As Range) As Boolean
        hasFormula = r.hasFormula
    End Function
    

    2) 选择所有单元格并应用以下 CF 规则:

    • 蓝色 CF(用于值):=AND(A1<>"",NOT(hasFormula(A1)))
    • 红色 CF(用于公式):=hasFormula(A1)

    对于 Excel 2013,您可以使用内置函数 ISFORMULA

    选择所有单元格并应用以下 CF 规则:

    • 蓝色 CF(用于值):=AND(A1<>"",NOT(ISFORMULA(A1)))
    • 红色 CF(用于公式):=ISFORMULA(A1)

    替代方式(用于用公式突出显示所有单元格):

    CTRL+G,然后选择“特殊...”->“公式”并按“确定” 。但它只会暂时突出显示单元格,直到您选择任何其他单元格。

    【讨论】:

    • 感谢您的回复。我尝试使用您提到的蓝色公式,但是我无法获得改变蓝色的值。这是我在单元格 H6 中的公式... (=V6-W6*7)。这是我在一个单元格中的 CF 公式 =AND(H6"",ISNA(FORMULATEXT(H6))) RED CF 我有不同的条件。但是当我在单元格中重写现有公式并简单地在其中输入日期时,我无法获得蓝色。它只是变成白色。我将默认颜色设为 CF 蓝色。尝试在其中粘贴一个 NOT,但这会使所有东西都永久变蓝。
    • ENGR024,检测公式使用=NOT(ISNA(FORMULATEXT(H6)))
    • 将 =NOT(ISNA(FORMULATEXT(H6))) 添加到我的 CF 使单元格永久变为蓝色。我现在在单元格中有一个公式,但它是蓝色的。当我输入日期时,它仍然是蓝色的
    • 这是我的测试工作簿(当 H6 包含 formula - 它是红色的,当 value - 它是蓝色的,当 empty - 它是白色的):dropbox.com/s/v1hnepyz4ta6tlf/test.xlsx
    • 所以当我简单地输入今天的日期,或者值 25 时;该值仍然没有变成蓝色。我正在使用您的链接
    猜你喜欢
    • 1970-01-01
    • 2021-07-06
    • 2013-10-04
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2011-02-06
    相关资源
    最近更新 更多