ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索

一个过程在将来的特定时间运行(ontime)

已有 2694 次阅读2013-11-28 14:47

Sub 时间()

    [a1] = WorksheetFunction.Text(Now(), "hh:mm:ss")

    Application.OnTime Now() + TimeValue("00:00:01"), "时间"

End Sub

Sub 终止()

    Application.OnTime Now() + TimeValue("00:00:01"), "时间", , False

End Sub

Application.OnTime 方法
安排一个过程在将来的特定时间运行(既可以是具体指定的某个时间,也可以是指定的一段时间之后)。
语法: OnTime(EarliestTime, Procedure, LatestTime, Schedule)

参数说明:

EarliestTime 必选 Variant 希望此过程运行的时间。

Procedure 必选 String 要运行的过程名。

LatestTime 可选 Variant 过程开始运行的最晚时间。例如,如果 LatestTime 参数设置为 EarliestTime + 30,且当到达 EarliestTime 时间时,由于其他过程处于运行状态而导致 Microsoft Excel不能处于就绪复制剪切查找模式,则 Microsoft Excel将等待 30 秒让第一个过程先完成。如果 Microsoft Excel不能在 30 秒内回到就绪模式,则不运行此过程。如果省略该参数,Microsoft Excel 将一直等待到可以运行该过程为止。

Schedule 可选 Variant 如果为 True,则预定一个新的 OnTime 过程。如果为 False,则清除先前设置的过程。默认值为 True

 

说明:

使用 Now + TimeValue(time) 可安排经过一段时间(从现在开始计时)之后运行某个过程。使用 TimeValue(time) 可安排某个过程只运行指定的时间。

示例:

本示例设置从现在开始 15 秒后运行 my_Procedure

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

本示例设置 my_Procedure 在下午 5 点开始运行。

Application.OnTime TimeValue("17:00:00"), "my_Procedure"

本示例撤消前一个示例对 OnTime 的设置。

Application.OnTime EarliestTime:=TimeValue("17:00:00"), Procedure:="my_Procedure", _Schedule:=False

路过

雷人

握手

鲜花

鸡蛋

发表评论 评论 (1 个评论)

回复 liulang0808 2015-9-10 16:09
Dim 时间
Sub 按钮2_Click()    '终止
    On Error Resume Next
    Application.OnTime 时间, "SaveIt", , False
End Sub

Sub SaveIt()
    时间 = Now + TimeValue("00:00:10")
    [a1] = WorksheetFunction.Text(Now(), "hh:mm:ss")
    Application.OnTime 时间, "SaveIt"
End Sub


如果时间间隔大于1秒,进行终止程序需要使用全局变量来变通,保证两个进程一致

facelist

您需要登录后才可以评论 登录 | 免费注册

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 09:35 , Processed in 0.022438 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

返回顶部