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培训的来源。

本技巧(3224)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007和更高版本)找到本技巧的版本: