VBA能实现定时自动执行一程序吗

VBA能实现定时自动执行一程序吗,第1张

只要你是写在excel里面的程序,不打开excel是不可能执行的,你需要另外采取措施定时打开这个excel文件。安排定时任务可以在控制面板的计划任务里面,注意把vba的函数改名为auto_open,这样打开excel的就执行你的vba了。

VBA程序运行中,你可能需要自动执行某些代码或者定时执行某些计划任务,如自动保存,这就要使用定时器来完成。这里水文工具集给出VBA中使用计时器的两种方法,其一是使用Application对象的OnTime方法来运行任务,其二是通过Windows API函数来完成,新手用第一种方式比较容易,具体实例如下:

一、采用Application.OnTime实现计时器的方式

view sourceprint?

01.'================================

02.' VBA采用Application.OnTime实现计时器

03.'

04.' http://www.cnhup.com

05.'================================

06.Public RunWhen As Double

07.Public Const cRunIntervalSeconds = 120 ' two minutes

08.Public Const cRunWhat = "TheSub" ' the name of the procedure to run

09.Sub StartTimer()

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

11.Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _

12.Schedule:=True

13.End Sub

14.Sub TheSub()

15.StartTimer ' Reschedule the procedure

16.End Sub

17.Sub StopTimer()

18.On Error Resume Next

19.Application.OnTime EarliestTime:=RunWhen,Procedure:=cRunWhat, _

20.Schedule:=False

21.End Sub

不打开EXCEL是不可能执行VBA的,VBA是在EXCEL的解释下执行的。

不用手工打开EXCEL,每天用计划认为打开EXCEL是可以的,设置VBA代码在打开工作簿的时候执行,执行完毕保存和关闭。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11464356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存