Excel VBA 应用程序.OnTime。我认为使用这个……想法是个坏主意?

标签 excel timer scheduling vba

我支持的许多用户要求事情自动发生(当然更自动,但这是另一点!)。

一个人希望事件每 120 秒发生一次(请参阅我的其他问题),另一个人希望在每个工作日下午 5 点发生一件事。这必须在 Excel 工作表上,因此 VBA 作为插件等将是不行的,因为它需要是独立的。

我非常不喜欢使用 Application.OnTime 我认为它危险且不可靠,其他人怎么看?

<小时/>

编辑: 交叉帖子位于VBA Macro On Timer style to run code every set number of seconds, i.e. 120 seconds

最佳答案

Application.OnTime绝对 100% 可靠,而且绝对不危险。但是,它通过 VBA 公开,并且出于某种原因,您将 VBA 视为“不”,因此此选项似乎对您不可用。

我一般不会使用 OnTime 进行长期调度,例如安排 Excel 每天下午 5 点执行命令。问题是,如果用户关闭 Excel,则 OnTime 调度就会丢失。在这种情况下,您需要使用 Task Scheduler ,或创建您自己的应用程序或 Windows 服务来打开 Excel 并执行您的命令。

但是,要安排事件每 120 秒发生一次,使用 Application.OnTime 将是完美的选择 - 您只需在每次 OnTime 回调时重新安排 OnTime 在 120 秒内再次发生,因为 OnTime每个调度仅触发一次,而不是重复。我绝对会使用 VBA 来完成这项任务。如果您不希望 VBA 开始执行操作,也可以:只需将 VBA 包含在工作簿中,然后由您的程序或通过任务计划程序打开该工作簿。从那时起,VBA 代码可以每 120 秒触发一次。

有道理吗?

关于Excel VBA 应用程序.OnTime。我认为使用这个……想法是个坏主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2341762/

相关文章:

algorithm - 调度算法最短作业优先

java - Quartz 作业未更新数据库

vba - 加速 VBA 代码

c# - 从 System.Threading.Timer 在 UI 中调用时如何避免泄漏句柄?

grails - 如何使用 quartz 启动在Grails中加载页面的作业

ios - 为定时器添加功能

ios - 为 NSArray 中的对象运行 NSTimer

vba - 在一个范围内选择一个范围

php - 如何使用连接列导出到 csv

Excel求和公式