如何制作像数字手表一样的计时器?

时间:2018-05-03 05:39:29

标签: excel excel-vba vba

我试图用excel制作数字手表。因此,当我打开一个工作簿然后在一个单元格中,让我们说在E3单元格中将显示时间,它将在每一秒继续,以便它看起来像一个数字手表。我可以在Access中执行此操作,因为访问FormOn Timer个事件,我可以编写代码以Textbox显示时间。在Excel中有没有其他替代方法。我试过下面的代码。但是代码需要在Button1上手动点击。我可以让它自动运行Button1_Click()每秒一次吗?

Sub Button1_Click()
    Application.OnTime Now(), "RunningTime"
End Sub

Sub RunningTime()
    Range("E3") = Format(Now(), "hh:mm:ss")
End Sub

我还尝试了Workbook_Open()方法,但在打开文件时它会运行一次。

Private Sub Workbook_Open()
    Application.OnTime Now(), "RunningTime"
End Sub

1 个答案:

答案 0 :(得分:3)

没有直接的方法来实现它,但你可以应用一些技巧来做到这一点。首先将下面的代码放到Module

Public Times As Boolean

Sub TimerRun()
    If Not Times Then Exit Sub
    Application.OnTime Now() + TimeValue("00:00:01"), "TimerRun"
    Range("E3").Value = Range("E3").Value + TimeValue("00:00:01")
End Sub

Sub TimerStop()
    Times = False
End Sub

然后复制下面的代码并粘贴到Workbook_Open()事件中。

Private Sub Workbook_Open()
    Range("E3").Value = Format(Now(), "HH:MM:SS")
    Times = True
    TimerRun
End Sub

如果要创建启动或停止按钮,以便可以通过单击按钮手动启动/停止计时器,然后放置表单控件命令按钮,然后指定TimerRun sub以启动并指定{{1}停止计时器。