言归正传,下面请看演示效果(演示中有删除单元格内容的操作,是为说明单元格中没有内容): 条件格式制作的LED时钟 首先我说下原理:用excel的单元格组成数字的样式,然后通过条件格式,设置相应单元格填充颜色的规则,通过改变单元格的颜色,再添加两句控制时间更新的VBA代码,就可以根据当前时间显示出不同的数字,实现了上图的效果。 下面,我们开始讲解制作过程,制作步骤如下: 设计时钟的尺寸:一个数字分为7笔(见下图,上中下三横、上口和下口的左右各两竖),每笔占三个单元格位置(即三个单位长度,一个单位宽度)。纵向就一共需要9个单元格;单个字横向需要5个单元格,分隔的冒号需要占2个单元格,数值与数值之间的间隔要占一个单元格,共需要5×6+2+7=39个单元格。再加上最外面一圈边框,整个LED时钟,横向需要41个单元格,纵向需要11个单元格。 数字的笔画拆分(共7笔) 调整单元格:数字的每笔的每个单元格,都要求是正方形的,但是在常规的列宽、行高设置中,都只能按像素来设置,且行和列的像素是不一样的。我们可以用下面的方法来设置:切换到页面布局视图→从B列开始选择41列【B列至AP列】→设置列宽【0.16cm】→从第2列开始选择11列【2至12列】→设置行高【0.16cm】→完成。具体操作见下图: 设置单元格行高列宽【0.16cm】 填充颜色,制作出时钟的数值效果要填充两种颜色:①时钟LED显示板底色——黑色;②时钟数值颜色——浅色。下面看我的操作演示: 单元格填充颜色 整理条件格式规则根据每个数字的特点,整理出显示0时哪些笔画填充颜色;显示1时哪些笔画填充颜色;显示2时哪些笔画填充颜色……显示9时哪些笔画填充颜色。然后整理成一个表(见下图): 整理结果 获取时间,并根据整理结果,设置条件格式一、获取时间(这个就不做动画演示了): 在A1单元格记录当前系统时间,然后通过定义名称的形式,定义为时间:时间=TEXT(A1,'hhmmss') 然后义六个名称,依次为(Mid函数前面加了2个减号,是为了将文本数字转换为数值): ①时2=--MID(时间,1,1);②时1=--MID(时间,2,1); ③分2=--MID(时间,3,1);④分1=--MID(时间,4,1); ⑤秒2=--MID(时间,5,1);⑥秒1=--MID(时间,6,1); 由于每个数字位置,都要显示0到9的所有数字,我们就根据上面表格的特点按笔画设置条件格式,举个实例: 笔画【上】:显示1、4的时候不着色,显示其余数字时均着高亮色; 笔画【中】:显示0、1、7的时候不着色,显示其余数字时均着高亮色; 笔画【下】:显示1、4、7的时候不着色,显示其余数字时均着高亮色; 笔画【左上】:显示1、2、3、7的时候不着色,显示其余数字时均着高亮色; 笔画【右上】:显示5、6的时候不着色,显示其余数字时均着高亮色; 笔画【左下】:显示1、3、4、5、7、9的时候不着色,显示其余数字时均着高亮色; 笔画【右下】:显示2的时候不着色,显示其余数字时均着高亮色; 【分隔的冒号】:每秒跳一次,可以设置秒数为双时是着高亮色,为单时不着色; 下面请看操作动画演示(操作动画只录制设置一个字的过程,其余的均按这个重复操作即可): 设置条件格式 通过VBA代码设置时间自动更新代码如下: Sub 开始() '宏1 Application.ScreenUpdating = False '禁止屏幕自动更新 ThisWorkbook.ActiveSheet.Range('A1') = Time '活动工作表A1等于系统时间 Application.OnTime Now + TimeValue('00:00:01'), '开始' '每隔一秒在A1单元格中加上1秒 End Sub Sub 停止() '宏2 Application.ScreenUpdating = False On Error Resume Next Application.OnTime Now + TimeValue('00:00:01'), '开始', , False End Sub 然后在工作表中,添加两个按钮,一个指定为开始,一个指定为停止。 设置VBA代码,完成制作 知识点回顾:1、按厘米设置列宽、行高,可通过页面布局视图实现; 2、MID为文本函数,其结果为文本格式,可在MID前面添加两个减号,将文本转换为数值(负负得正); 3、判断奇数偶数用MOD函数:MOD(数值,2)=0,则数值为偶数; 4、通过AND或者OR逻辑函数,多条件判断; 5、条件格式设置。 |
|
来自: 我的人生宝库 > 《电脑(软件应用)》