首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel OnTime事件计划程序

Excel OnTime事件计划程序
EN

Stack Overflow用户
提问于 2013-08-21 21:03:07
回答 1查看 8.3K关注 0票数 2

我需要每天在特定的时间运行我的excel VBA。我在谷歌上搜索了ontime方法,但我并没有从它得到一个全面的理解。我会提出这个来清理我对ontime方法的困惑。

包含的excel工作簿在运行之前是否必须为ontime方法打开。如果是,有没有办法在特定时间自动打开excel工作簿?我知道这可能是由定时器或Windows任务计划程序完成的。有人能帮我解决这个问题吗。我当前的代码是否为自动任务调度程序正确构造?

我当前的代码如下所示:

代码语言:javascript
复制
Sub StartTimer()
Application.OnTime EarliestTime:=TimeValue("11:15:00"), Procedure:="rune", _
    Schedule:=True
End Sub

Sub rune()
  SourceOneUpdate
  SourceTwoUpdate
  SourceThreeUpdate
  GenerateReport
End Sub

Private Sub workbook_open()
  StartTimer
End Sub

这是基于这篇文章中的想法:http://www.cpearson.com/excel/OnTime.aspx,这可能会有帮助。即使此工作簿是打开的,它也不会自动运行。有人能帮我看看为什么这个不能正常工作吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-08-21 21:24:28

只是为了扩大d-stroyer的评论。

首先需要确保宏设置始终处于启用状态,因为这将确保每次打开工作簿时,宏都会在没有任何通知或确认的情况下运行。

要做到这一点,

Excel选项>信任中心>信任中心设置(按钮)>宏设置>启用所有宏>确定

现在您的宏已启用,您需要确保工作簿一打开,宏就会立即运行。因此,转到VB编辑器并打开ThisWorkbook模块>创建一个workbook_open()事件,然后将"OnTime代码“复制并粘贴到workbook_open事件>保存和关闭中

现在,每次打开工作簿时,工作簿都应该在8:47运行所需的代码。

进入Task Scheduler,在右边点击"Create Basic Task...“。为任务指定一个名称,然后单击next。选择一个触发器(在这里提到的情况下是Daily),然后单击next。设置时间和重复周期,然后单击下一步。在操作中,选择“启动程序”并单击“下一步”。在“程序/脚本”文本框中,浏览到Excel文件,然后单击“下一步”(将其他文本框留空)。单击Finish。我刚刚在我的电脑上试过了,它可以工作了。

From Windows Help Forum

PS:确保你的日程安排在8:47之前打开excel文件(所以可能是8:46)。

干杯,

公园

编辑:尝试运行此命令以查看您的OnTime是否正常工作。

代码语言:javascript
复制
Sub RunOnTime()
    Application.OnTime Now + TimeSerial(0, 0, 10), "theSub"
End Sub
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18358214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档