答案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
这分为两个部分。
- 您已经有一张包含公式的表格。
- 接下来,您可以在同一张表中以公式形式输入任何内容。
我建议采用如下的 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
输入公式时将自动将单元格的字体变为蓝色。
(它还会同时将所有其他公式单元格变为蓝色)
因为它是工作表代码,所以非常容易安装和自动使用:
- 右键单击 Excel 窗口底部附近的选项卡名称
- 选择查看代码-这将打开一个 VBE 窗口
- 粘贴内容并关闭 VBE 窗口
如果您有任何疑虑,请首先在试用工作表上尝试一下。
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 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
必须启用宏才能使其工作!