Trev拥有一张按产品列出的销售预测表,一些用户可以查看和更新​​。最初使用各种公式设置了预测,但是允许用户通过在包含公式之一的任何单元格中输入值来覆盖公式。如果用户这样做,则Trev让Excel以某种方式突出显示该单元格将很有帮助。

您可以采取几种方法。首先,您可以使用条件格式进行突出显示。将条件格式设置规则类型设置为“仅格式化包含“单元格值”的单元格

| “不等于”,然后输入公式作为比较。这将告诉您单元格中的值何时不等于公式的任何值,但是如果有人用该公式的结果覆盖公式,则可能会出现“陷阱”。例如,如果该公式将产生结果“ 27”,并且用户在单元格中键入“ 27”。另一种可能性是在命名常量中定义公式,然后以条件格式使用该命名常量。请按照下列步骤操作:

。显示功能区的“公式”选项卡。

。单击“定义的名称”组中的“定义名称”。 Excel将显示“新名称”对话框。 (请参见图1。)

。在“名称”框中,输入要分配给该公式的名称。对于此示例,使用CellHasNoFormula。

。在对话框底部的“引用到”框中选择任何内容,然后按Del键,这将消除之前Excel所具有的内容。

。在“引用到”框中输入以下公式:

。单击确定。

现在,您可以设置一些条件格式,并在格式中使用此命名公式。只需将条件格式设置规则类型设置为“使用公式来确定要格式化的单元格”,然后在条件中输入以下公式:

=CellHasNoFormula

该公式将返回True或False,具体取决于单元格中是否存在公式。如果没有公式,则返回True,并将您指定的任何格式应用于单元格。另一种方法是使用用户定义的函数返回True或False,然后设置条件格式。您可以使用非常简单的宏,例如:

Function IsFormula(Check_Cell As Range) As Boolean     Application.Volatile     IsFormula = Check_Cell.HasFormula End Function

然后,您可以将条件格式设置规则类型指定为“使用公式来确定要格式化的单元格”,并在条件下输入以下公式,例如,如果您正在对单元格C1进行条件格式设置:

=NOT(IsFormula(C1))

如果单元格中没有公式,则公式返回True,因此将应用条件格式。使用这些公式中的任何一个来确定某个公式是否在单元格中的唯一缺点是,它无法确定该单元格中的公式是否已被其他公式替换。这适用于宏方法和定义的公式方法。完全不同的方法是重新考虑工作表。您可以将单元格与使用公式的单元格分开,以供用户输入。该公式可以使用IF函数来查看用户是否在用户输入单元格中输入了某些内容。如果不是,则将使用您的公式来确定值;如果是这样,那么用户输入将优先于您的公式使用。这种方法使您可以保留所需的公式,而不会被用户覆盖。这将导致公式和工作表结果的高度完整性。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9270)适用于Microsoft Excel 2007、2010和2013。您可以在以下版本的Excel的较旧菜单界面中找到本技巧的版本: