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

Excel 如何制作像数字手表一样的计时器?,excel,vba,Excel,Vba,我试着用excel制作数字手表。所以,当我打开一个工作簿,然后在一个单元格中,比如说在E3单元格中,它将显示时间,并且它将在每秒钟中继续,这样它看起来就像一个数字手表。我可以在Access中执行此操作,因为AccessForm具有On Timer事件,在该事件中,我可以编写代码以在文本框中显示时间。excel中是否有其他方法。我试过下面的代码。但是代码需要手动单击按钮1。我是否可以使其每秒自动运行按钮1\u Click()子按钮 Sub Button1_Click() Applicati

我试着用excel制作数字手表。所以,当我打开一个工作簿,然后在一个单元格中,比如说在
E3
单元格中,它将显示时间,并且它将在每秒钟中继续,这样它看起来就像一个数字手表。我可以在
Access
中执行此操作,因为Access
Form
具有
On Timer
事件,在该事件中,我可以编写代码以在
文本框中显示时间。excel中是否有其他方法。我试过下面的代码。但是代码需要手动单击
按钮1
。我是否可以使其每秒自动运行
按钮1\u Click()
子按钮

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

Sub RunningTime()
    Range("E3") = Format(Now(), "hh:mm:ss")
End Sub
我也尝试了
Workbook\u Open()
方法,但在打开文件时它只运行一次。

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

没有直接的方法来实现它,但您可以应用一些技巧来实现。首先将以下代码放入
模块

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
然后复制下面的代码并粘贴到
工作簿\u Open()
事件中。

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

如果您想设置“开始”或“停止”按钮,以便您可以通过单击按钮手动启动/停止计时器,然后放置窗体控制命令按钮,然后分配
TimerRun
sub启动并分配
TimerStop
停止计时器。

没有直接的方法,因为excel中迄今为止没有计时器控制事件,我最熟悉的是。但是你可以用
VBA
编码的方式来实现这一点。@harun24hr你能给我演示一下这个技巧吗?我尝试了不同的方法,但没有成功。如果你能帮助我做到这一点,我将不胜感激。提前感谢。我是否需要手动触发任何按钮来运行计时器,或者打开文件后它会自动显示时间?您不需要手动触发任何东西。它将自动开始在
E3
单元格中显示时间。如果要停止,则需要手动触发
TimerStop()
sub。这些代码对我有效。非常感谢你。非常感谢。