excel - 倒计时无法取消

标签 excel vba

我在用户窗体中建立了一个小的 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/

相关文章:

c++ - 无法使用 QAxObject 读取文件数据两次

excel - 如何在excel中按行计算彩色单元格

excel - 如何在表单中双击查看单元格详细信息?

excel - 将发票总额复制到相关客户帐户余额

vba - 在 Excel 中插入具有特定单元格中的值的行

excel - Excel VBA 正则表达式模式中的定界符,过滤某些内容但不过滤其他内容

mysql - Excel 到 SQL - CEILING 和错误代码 1582

Excel VBA秒表: add pause button?

excel - VBA 使用另一个数组查找一个数组中的值

excel - 提取 zip 文件时出现错误 'run-time error -2147024894(80070002)' ...