0

我有以下显示时间,它动态运行:

Option Explicit

Dim SchedRecalc As Date

Sub Recalc()
With Sheet1.Range("D4")
.Value = Format(Time, "hh:mm:ss AM/PM")
End With
Call SetTime
End Sub
Sub SetTime()
SchedRecalc = Now + TimeValue("00:00:01")
Application.OnTime SchedRecalc, "Recalc"
End Sub
Sub Disable()
On Error Resume Next
Application.OnTime EarliestTime:=SchedRecalc, Procedure:="Recalc", Schedule:=False
End Sub

从网上找到的说明中获得此代码后,此代码位于独立模块和 Sheet1 中。

它有效,但导致工作簿每次关闭时都会自动重新打开。退出程序是关闭的唯一方法。

然后我添加到 ThisWorkbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call Disable
End Sub

这确实使工作簿能够正常关闭,但现在重新打开时钟不会刷新,除非我在所需的单元格中重新启动宏。

如何在打开工作簿后立即刷新时钟而不会导致重新打开问题?

谢谢...

4

1 回答 1

0

使用Workbook_Open()事件来初始化onTime进程。

Private Sub Workbook_Open()
Call SetTime
End Sub
于 2020-08-20T10:56:30.843 回答