自动为 Excel 中包含公式的单元格着色

自动为 Excel 中包含公式的单元格着色

如何让 Excel 自动为包含公式的单元格着色?

例如,如果单元格 B4 包含=SUM(B1:B3),单元格 B7 包含,=B4-B7那么我希望能够自动为它们设置不同的颜色,因此 Excel 看起来像这样:

在此处输入图片描述

如果我将单元格 B6 更改为公式,那么我希望它也会自动改变颜色。

答案1

事实证明你可以使用ISFORMULA使用条件格式来做到这一点。

本网站

要应用条件格式来突出显示带有公式的单元格:

  • 选择单元格 A2:C4,其中单元格 A2 为活动单元格。
  • 在 Excel 功能区的“主页”选项卡上,单击“条件格式”命令
  • 单击“新建规则”
  • 单击使用公式确定要格式化的单元格
  • 输入 ISFORMULA 公式,引用活动单元格 - A2:=ISFORMULA(A2)
  • 单击“格式”按钮,然后为带有公式的单元格选择填充颜色——此示例中为灰色。
  • 单击“确定”两次,关闭窗口。

不幸的是ISFORMULA仅适用于 Excel 2016 及更高版本。

然而,受到其他答案的启发,我意识到您可以创建一些 VBA 来为使用早期版本 Excel 的人们模拟该功能。

为此,您需要打开 VBA 编辑器(Alt+F11),创建一个新模块(菜单选项“插入”,然后“模块”)并将此代码放入该模块:

Public Function IsFormula(ref As Range)
    IsFormula = ref.HasFormula
End Function

保存它,现在条件格式就可以起作用了。

答案2

这分为两个部分。

  1. 您已经有一张包含公式的表格。
  2. 接下来,您可以在同一张表中以公式形式输入任何内容。

我建议采用如下的 VBA 解决方案。

ALT+F11访问 VBA 编辑器。从插入菜单插入一个模块。转到其代码窗口并将以下代码粘贴到其中。

Sub ColorFormula()

Dim inrange As Variant
Dim incell As Range
On Error Resume Next
Set inrange = Application.InputBox(Prompt:="Please Select a Range", Type:=8)
If inrange.Rows.Count = 0 Then
    MsgBox ("No Range Selected!")
    End
End If

For Each incell In inrange
    If incell.HasFormula = True Then
        incell.Font.Color = -4165632
    End If
Next

End Sub

现在从左窗格中单击 ThisWorkbook 并在代码窗口中选择 WorkBook SheetChange 事件。将有一个带有 End Sub 的子程序占位符,供您将代码插入其中。

将以下代码粘贴到其中

If Target.HasFormula = True Then
    Target.Font.Color = -4165632
End If

在此示例中,选择了蓝色,您可以将其更改为任何其他可用的颜色。

退出 VBA 编辑器。现在,每次更改该工作簿中任何工作表中的单元格时,SheetChange 事件都会触发,如果是公式,它将更改为蓝色字体。

ALT+F8并运行 ColorForlmula 宏并指定单元格范围。代码将运行范围内的每个单元格,如果发现已经存在的公式,它将把字体更改为蓝色。

在此处输入图片描述

答案3

这个小事件宏:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Target.HasFormula Then Exit Sub
    Cells.SpecialCells(-4123).Font.ColorIndex = 5
End Sub

输入公式时将自动将单元格的字体变为蓝色。
(它还会同时将所有其他公式单元格变为蓝色)

因为它是工作表代码,所以非常容易安装和自动使用:

  1. 右键单击 Excel 窗口底部附近的选项卡名称
  2. 选择查看代码-这将打开一个 VBE 窗口
  3. 粘贴内容并关闭 VBE 窗口

如果您有任何疑虑,请首先在试用工作表上尝试一下。

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件宏(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

必须启用宏才能使其工作!

相关内容