Excel VBA Application.OnTime。 我认为使用这个想法是一个糟糕的主意吗?

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

人们希望每120秒发生一次事件(参见我的另一个问题),另外还有一件事要在每个工作日的下午5点发生。 这必须在Excel表格,所以因此VBA作为插件等将是一个不,因为它需要自包含。

我有一个很大的不喜欢使用Application.OnTime我认为它的危险和不可靠的,其他人都认为呢?


编辑:交叉帖是在VBAmacros定时器风格运行代码每集秒数,即120秒

Application.OnTime绝对是100%可靠的,绝对不是危险的。 但是,它只是通过VBA暴露出来的,而且由于某种原因,您将VBA视为“不是”,所以这个选项似乎对您无效。

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

但是,对于每120秒发生一次事件的调度,使用Application.OnTime将是完美的 – 你只需要重新调度OnTime,每次OnTime调用时就会在120秒内再次发生,因为OnTime只会触发一次每个调度,而不是重复的基础上。 我绝对会使用VBA来完成这个任务。 如果你不想让VBA开始这个动作,那就好了:只要将VBA包含在一个工作簿中,然后由你的程序或Task Scheduler打开工作簿。 从那时起,VBA代码每120秒就会启动一次。

合理?