我在用户窗体中建立了一个小的 5 分钟倒计时。
倒计时应该倒计时。但是如果用户窗体关闭,宏应该停止并且计时器应该被重置。
在用户窗体的 Terminate
事件我已经存储了我自己的中止函数的调用。这将终止用户窗体,但计时器继续在后台运行,并且始终将相应的宏带到前台。
如何修改代码以在用户窗体关闭时停止计时器?
模块 1
Dim Count As Date
Sub callBreak()
Break.Show
End Sub
Sub Time()
Count = Now + TimeValue("00:00:01")
Application.OnTime Count, "minus"
End Sub
Sub minus()
Dim y As Date
y = Break.Label1.Caption
y = y - TimeSerial(0, 0, 1)
Break.Label1.Caption = y
If y <= 0 Then
Break.Label1.Caption = "Arbeit, Arbeit!"
Exit Sub
End If
Call Time
End Sub
Sub abord()
End
End Sub
用户表单 :
Sub UserForm_Initialize()
Call Coffeebreak.Time
End Sub
Sub UserForm_Terminate()
Call Coffeebreak.abord
End Sub
最佳答案
您可以通过将 Application.OnTime 的可选 Schedule 参数设置为 False 来取消先前计划的过程。试试这个作为你的 Abord() 函数:
Sub Abord()
Application.OnTime EarliestTime:=Count, Procedure:="minus", Schedule:=False
End Sub
关于excel - 倒计时无法取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54235793/