使用VBA实现数字雨效果

2022-11-16 12:50:44 浏览数 (1)

标签:VBA,条件格式

在Excel中,借助于Excel公式、条件格式和一点点VBA代码,也能实现高科技题材电影中的数字雨效果。如下图1所示。

图1

下面详细讲解如何实现这样的效果。

在工作表第一行单元格区域A1:AP1中,输入0至9之间的随机数,可以使用RANDBETWEEN函数来创建随机数,然后调整列宽以方便查看,如下图2所示。

图2

在单元格区域A2:AP32中,输入公式:

=INT(RAND()*10)

打开VBE,插入一个标准模块,输入代码:

代码语言:javascript复制
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub NumberRain()
    Dim i As Integer
    i = 1
    Do While i <= 40
        DoEvents
        Range("AR1").Value = i
        i = i   1
        Sleep 50
    Loop
End Sub

上面的代码在单元格AR1中输入从1至40的数字,间隔50毫秒。

下面设置条件格式。

选择单元格区域A2:AP32,单击“开始——条件格式——新建规则”。在“新建格式规则”对话框中,选择规则类型“使用公式确定要设置格式的单元格”,在“为符合此公式的值设置格式”中输入公式:

=MOD($AR$1,15)=MOD(ROW() A$1,15)

单击“格式”按钮,选择“字体”选项卡,设置字体颜色为白色。

保持选择单元格区域A2:AP32,单击“开始——条件格式——管理规则”。在“条件格式规则管理器”中,单击“新建规则”,按上述步骤,选择规则类型“使用公式确定要设置格式的单元格”,在“为符合此公式的值设置格式”中输入公式:

=MOD($AR$1,15)=MOD(ROW() A$1 1,15)

单击“格式”按钮,选择“字体”选项卡,设置字体颜色为绿色。

保持选择单元格区域A2:AP32,单击“开始——条件格式——管理规则”。在“条件格式规则管理器”中,单击“新建规则”,按上述步骤,选择规则类型“使用公式确定要设置格式的单元格”,在“为符合此公式的值设置格式”中输入公式:

=OR(MOD($AR$1,15)=MOD(ROW() A$1 2,15),MOD($AR$1,15)=MOD(ROW() A$1 3,15), MOD($AR$1,15)=MOD(ROW() A$1 4,15),MOD($AR$1,15)=MOD(ROW() A$1 5,15))

单击“格式”按钮,选择“字体”选项卡,设置字体颜色为绿色。

接下来,选择单元格区域A1:AP32,设置其背景色为黑色。

最后,单击功能区“开发工具”选项卡“插入——按钮”,将MatrixNumberRain过程关联到该按钮。

单击该按钮,就可以看到数字雨效果了。

注:有兴趣的朋友可以到知识星球App完美Excel社群下载本文示例工作簿。

vba

0 人点赞