如何在Excel中显示正在运行的时钟?
我想展示Excel 2007单元格A1中的时钟。我熟悉NOW()和TODAY(),但它并不像我希望的那样每1分钟刷新一次。你知道,就像一个运行的时钟。我只希望h:mm中的当前时间在A1单元中。这可能吗 从这个时钟开始,我将做进一步的计算,比如我上次做活动X、Y和Z已经有多长时间了。非常感谢。参见下面的代码() 将此代码放入VBA的模块中(开发人员选项卡->Visual Basic) 您可以在工作簿打开时调用“StartTimer”函数,并通过在Visual Basic编辑器中的工作簿Visual Basic“This.workbook”类中添加以下代码,使其每分钟重复一次如何在Excel中显示正在运行的时钟?,excel,vba,Excel,Vba,我想展示Excel 2007单元格A1中的时钟。我熟悉NOW()和TODAY(),但它并不像我希望的那样每1分钟刷新一次。你知道,就像一个运行的时钟。我只希望h:mm中的当前时间在A1单元中。这可能吗 从这个时钟开始,我将做进一步的计算,比如我上次做活动X、Y和Z已经有多长时间了。非常感谢。参见下面的代码() 将此代码放入VBA的模块中(开发人员选项卡->Visual Basic) 您可以在工作簿打开时调用“StartTimer”函数,并通过在Visual Basic编辑器中的工作簿Visual
Private Sub Workbook_Open()
Module1.StartTimer
End Sub
现在,每过1分钟,就会调用计时器过程,并将单元格A1设置为当前时间。找到了我在上面的评论中提到的时间。要测试它,请执行以下操作:
Sheet1
中,更改sayA1的单元格高度和宽度,如下面的快照所示李>
通过右键单击单元格以显示时间格式来设置单元格格式
在工作表上添加两个按钮(表单控件),并按快照所示命名
将此代码粘贴到模块中
右键单击工作表上的Start Timer
按钮,然后单击Assign Macros
。选择StartTimer
macro
右键单击工作表上的结束计时器
按钮,然后单击分配宏
。选择EndTimer
宏
现在单击启动计时器按钮,您将看到时间在单元格A1
中得到更新。要停止时间更新,请单击结束计时器按钮
代码(经过尝试和测试)
快照
您可以使用Application.OnTime启动宏,刷新单元格中的时间。可能是这样的吗?您可以使用GetTickCount API在Excel中显示时钟。我曾经提出过这样的申请。让我来找你…@jimmypena这比我需要的多。我实际上只需要一个单元格中的数字,不需要花哨的图形。我下载并签出了它。那很酷。也是相关的,并且可以很好地解释最佳实践和陷阱。这是内置功能的一个非常好的替代方案。我不得不改变TimerSeconds=1000
让它像问题所问的那样每分钟刷新一次,但我喜欢!非常有趣。
Private Sub Workbook_Open()
Module1.StartTimer
End Sub
Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long) As Long
Public TimerID As Long, TimerSeconds As Single, tim As Boolean
Dim Counter As Long
'~~> Start Timer
Sub StartTimer()
'~~ Set the timer for 1 second
TimerSeconds = 1
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub
'~~> End Timer
Sub EndTimer()
On Error Resume Next
KillTimer 0&, TimerID
End Sub
Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
'~~> Update value in Sheet 1
Sheet1.Range("A1").Value = Time
End Sub