运用Excel散点图 制作时钟 教程
效果图:(文章底部附实例下载)

说明:点击“START“时钟开始运行,点击“STOP”时钟停止运行。
工具:Excel X、Y散点图绘制图表、SIN()、COS()、RADIANS()等函数;
原理:"=2∏r "
数据制作:
据左图,把指针看做从原点引出的辅助线(r)。指针是向右顺时针旋转与正上方的y轴的角度为α。因此x=r*sin(α),y=r*cos(α)
据此原理我们可分别得出时、分秒指针r的 X、Y的散点坐标公式:(以时钟为例,设指针长度为0.5)
X=0.5*SIN(HOUR(NOW())+MINUTE(NOW())/60)*2*PI()/12
Y=0.5*SIN(HOUR(NOW())+MINUTE(NOW())/60)*(2*PI()/12)
1)HOUR(NOW())+MINUTE(NOW())/60 得到是多少小时(忽略了秒的影响)。举个例子:设当前时间为13:48,则公式HOUR(NOW())+MINUTE(NOW())/60=13.8
2)(2*PI()/12) 将一闭合圆分成12等分,时间以12小时为一天周。
时针、分针和秒针的方法相似,都是从原点引出的一个线段。同理可以得出分针、钞针公式:
分针(设分针长度为0.75)
X=0.75*SIN((MINUTE(NOW())+(SECOND(NOW())/60))*(2*PI()/60))
钞针(设钞针长度为0.85)
X=0.85*SIN(SECOND(NOW())*(2*PI()/60))
至此时针、分针、秒针皆已确定,只剩下表刻度盘了。(这里主刻度盘为例说明)将一个圆(360°)划为12等分,每个小时之间的夹角是30°,则刻度盘的公式:(radians()将角度转换成弧度)
X=SIN(RADIANS(30*(ROW(1:1)-1)))
按需求公式填充成如下区域数据:
| A | B | C | D | E | |
| 1 | 时针 | 刻度盘 | |||
| 2 | x | y | x | y | |
| 3 | 0.000 | 0.000 | 0.000 | 1.000 | |
| 4 | 0.451 | 0.215 | 0.500 | 0.866 | |
| 5 | 0.866 | 0.500 | |||
| 6 | 分针 | 1.000 | 0.000 | ||
| 7 | x | y | 0.866 | -0.500 | |
| 8 | 0.000 | 0.000 | 0.500 | -0.866 | |
| 9 | 0.580 | 0.392 | 0.000 | -1.000 | |
| 10 | -0.500 | -0.866 | |||
| 11 | 秒针 | -0.866 | -0.500 | ||
| 12 | x | y | -1.000 | 0.000 | |
| 13 | 0.000 | 0.000 | -0.866 | 0.500 | |
| 14 | 0.777 | -0.346 | -0.500 | 0.866 | |
| 15 | 0.000 | 1.000 | |||
接下来就是图表的制作了
【插入】-【图表】-【散点图】,分别增加时针、分针、秒针、刻度盘系列,得到图表雏形如下

到这差不多主要效果皆已实现,你可以连续按F9测试一下。(格式请自行设置)
最后分别为按钮“START"、"STOP"录制宏命令,按ALT+F11进入VBA编辑界面,插入模块,将以下代码复制到代码框-保存
Option Explicit
Dim NextTick
Sub UpdateClock()
ThisWorkbook.Sheets(1).Calculate
NextTick = Now + TimeValue("00:00:01")
Application.OnTime NextTick, "UpdateClock"
End Sub
Sub StopClock()
On Error Resume Next
Application.OnTime NextTick, "UpdateClock", , False
End Sub
按钮"START"指定宏"UPDATECLOCK()",按钮"STOP"指定宏"STOPCLOCK()"。

![酷歪人主机,优惠码[surda.cn]](http://img.surda.cn/ads/yculer.jpg)

好可怕,你太牛了。。
太牛了。。。。膜拜之