VBA 宏定时器样式每隔设定的秒数(即 120 秒)运行代码

标签 vba excel timer scheduling

我需要每 120 秒运行一段代码。我正在寻找一种在 VBA 中执行此操作的简单方法。我知道可以从 Auto_Open 事件中获取计时器值,以防止必须使用魔数(Magic Number),但我不太明白如何启动计时器来运行某些东西每 120 秒一次。

如果可以避免的话,我真的不想在 sleep 中使用无限循环。

<小时/>

编辑:

根据提供的答案交叉发布位于:Excel VBA Application.OnTime. I think its a bad idea to use this... thoughts either way?

最佳答案

当工作簿首次打开时,执行以下代码:

alertTime = Now + TimeValue("00:02:00")
Application.OnTime alertTime, "EventMacro"

然后在工作簿中有一个名为“EventMacro”的宏来重复它。

Public Sub EventMacro()
    '... Execute your actions here'
    alertTime = Now + TimeValue("00:02:00")
    Application.OnTime alertTime, "EventMacro"
End Sub

关于VBA 宏定时器样式每隔设定的秒数(即 120 秒)运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319683/

相关文章:

excel - 我的德语 Excel 无法识别英语日期

excel - 非相交范围 VBA

javascript - 如果用户不使用浏览器,jQuery 计时器就会停止

java - 为什么 EJB 定时器服务使用 Singleton 作为标准?

excel - 如果 K 列中有 0,则删除行 C 到 K 并将单元格上移

Excel VBA 创建具有分组值的报告

regex - 使用 like 与 Excel 中的字符串进行比较

vba - 数组/集合和每个循环中的用户定义类型

vba - 如何读取 txt 文件中的行,但从第二行开始,跳过第一行?

Java:通过Timer调用方法,但被调用方法所做的更改不会保留在TimerTask之外