我支持的许多用户要求事情自动发生(当然更自动,但这是另一点!)。
一个人希望事件每 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/