admin管理员组

文章数量:1534824

2024年5月18日发(作者:)

使用OnTime安排执行过程

你可能需要设计Excel工作簿定期并自动地运行一个过程。例如,你可能想每隔几分

钟从数据源中更新数据。使用VBA,你能执行Excel应用程序的OnTime方法指令Excel

在给定的时间去运行某过程。通过编写代码使程序自已调用OnTime方法,能使VBA代

码定期自动执行。本篇文章描述处理这种情况的VBA过程。

介绍

OnTime方法要求指定日期和时间以及要运行的过程作为参数,重要的是要记住具体

地告诉Excel什么时候运行这个过程而不是从当前时间的偏差。为了取消一个未执行的

OnTime过程,你必须经过该过程计划要运行的确切的时间,你不能够告诉Excel取消下

一个计划执行的过程。因此,建议将安排过程开始运行的时间存放在一个公共的(或全局)

变量中,该变量作用于所有的代码。然后,你能使用所存储时间的变量去安排运行或取消

事件。下面的示例代码存储了所运行过程的名称和重复执行的时间间隔在公共的常量中,

当然这不是必需的。

Public RunWhen As Double

Public Const cRunIntervalSeconds = 120 ' two minutes

Public Const cRunWhat = "The_Sub"

开始一个定时的过程

为开始这个过程,使用一个名为 StartTimer的子程序。代码如下:

Sub StartTimer()

RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)

earliesttime:=RunWhen, procedure:=cRunWhat, _

schedule:=True

End Sub

将比当前时间多两分钟的日期和时间存放在RunWhen变量中,然后调用OnTime方

法指令Excel何时运行cRunWhat过程。

“The_Sub”是一个字符串变量,Excel将在合适的时间运行该过程。下面是该过程

代码示例:

Sub The_Sub()

'

' your code here

'

StartTimer

本文标签: 过程运行时间