显示需求
在使用用户窗体设计用户界面时,我们想要在适当的位置显示时钟,方便用户实时查看时间。
效果如图:
解决方式 1.先设置需要显示的模块 放置了一个文本框控件(保留其默认名称 TextBox1 ),并在其中显示实时时间。
2. 在标准模块中添加代码 设计好用户窗体界面后,在VBE中插入一个标准模块 ,输入下面的代码:
注意:一定要把这个程序放到模块之中,否则 Application.OnTime 这个函数会报错!
1 2 3 4 5 6 7 8 9 10 11 12 13 Sub StartTimer1() Application.OnTime Now + TimeValue("00:00:01" ),"NextTick1" End Sub Sub NextTick1() UserForm1.TextBox1 = Format(Now, "yyyy/mm/dd hh:mm:ss AM/PM" ) StartTimer1 End Sub Sub StopTimer1() On ErrorResume Next Application.OnTime Now + TimeValue("00:00:01" ),"NextTick1" , , False End Sub
3. 运行 NextTick1 函数即可
运行NextTick1过程,然后显示用窗体,即可以看到显示实时时间的效果
如果要停止时间的实时显示,运行StopTimer1过程即可。
#其他方法
方式一 方法同上在标准模块中使用Application.OnTime 函数,将Label1.caption更改为我的用户窗体上想要显示的适当标签。
1 2 3 4 5 6 7 8 9 10 11 Sub DisplayCurrentTime() Dim nextSecond As Date nextSecond = DateAdd("s" , 1 , Now()) Label1.Caption = Time() Application.OnTime _ Procedure:="DisplayCurrentTime" , _ EarliestTime:=nextSecond End Sub
方式二
要求:三个文本框分别放置系统时间的 时,分,秒,并随着时间变动而变动
放在模块中的函数:
1 2 3 4 5 6 7 8 9 10 11 12 Sub 时间() UserForm1.TextBox1 = Left(Application.WorksheetFunction.Text (Now(), "HH:MM" ), 2 ) UserForm1.TextBox2 = Right(Application.WorksheetFunction.Text (Now(), "HH:MM" ), 2 ) UserForm1.TextBox3 = Right(Application.WorksheetFunction.Text (Now(), "MM:SS" ), 2 ) Application.OnTime Now() + TimeValue("00:00:01" ), "时间" End Sub Sub 停止() On Error Resume Next Application.OnTime Now() + TimeValue("00:00:01" ), "时间" , , False End Sub
放在窗体中:
1 2 3 4 5 6 7 8 9 10 11 Private Sub CommandButton1_Click() Call 停止 End Sub Private Sub CommandButton2_Click()Call 时间End Sub Private Sub UserForm_Initialize() Call 时间 End Sub
放在启动中:
1 2 3 Private Sub Workbook_Open() UserForm1.Show End Sub
时钟文件
相关链接
VBA实战技巧18:在用户窗体中显示时钟
excel - VBA如何在用户窗体中显示实时时钟?
考试题目】在窗体文本框内实时显示系统时间
=================我是分割线=================
欢迎到公众号来唠嗑: