Excel 等电子报表的一大公用既是通过数据的收集汇总及一定的计算操作将我们所需的数据展示出来,当然我们可以通过图表的方式使其具象化,但是对于一些特殊的数据我们可能更希望它能闪烁提示以给我们更强的视觉冲击。现有的 Excel 及 WPS 等数据处理软件是没有提供该功能的,这里提供两种特殊的方法实现该功能。

VBA 代码控制

使用 VBA 代码控制,我们需要设置一个计时器,通过判断当前时间的奇偶性来设置不同状态下的显示颜色即可。

打开 Excel 开发工具中的代码编辑器,新建一个模块,在新建的模块中插入如下代码:

Public newTime As Date

Sub AotoTime()

    Set myDocument = ThisWorkbook.Worksheets("Sheet1")     '定义工作表
    newTime = Now + TimeValue("00:00:01")                  '更新时间是1秒
    myDocument.Range("D9").Value = newTime                 'Sheet1 D9单元格显示动态时间
    myDocument.Range("D17").Interior.ColorIndex = Second(newTime) Mod 57    '控制颜色,根据时间调取不同索引色
    Application.OnTime newTime, "AotoTime"                 '安排一个过程在将来的特定时间(Newtime)运行,
    
End Sub
Sub CloseAotoTime()
    On Error Resume Next
    Application.OnTime newTime, "AotoTime", , False
End Sub

代码中 D9 与 D17 的位置可自由设置,主要用于显示当前时间及闪烁颜色的。这里采用的是 57 种索引颜色的随机一种,关于 Excel 中的索引颜色,可以查阅这篇文章>>>Excel~常用颜色对照表

条件格式控制

对于一些不方便使用 VBA 并且我们不希望设置计时器的表单,如果我们能有办法控制表单中某一变量随时变化也可通过监测该变化量通过 Excel 自带的条件格式设置闪烁。为了方便,我这里依旧使用上述 VBA 代码中获取的当前时间作为变化量来设置条件格式控制闪烁。

分别在需要闪烁的单元格上设置如下条件格式,并设置对应的闪烁颜色:

=MOD(SECOND($D$9),2)=0
=MOD(SECOND($D$9),2)=1

其实就是通过取余判断,$D$9 为当前需要设置闪烁的单元格。

最后是显示效果:

以上。