VBA Macro On Timer样式每隔几秒钟运行代码,即120秒我需要每120秒运行一段代码。我正在寻找一种在VBA中执行此操作的简单方法。我知道有可能从Auto_Open事件中获取计时器值以防止必须使用幻数,但我无法完全了解如何触发计时器以获得每120秒运行一次的东西。如果我可以避免它,我真的不想在睡眠中使用无限循环。
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
首次打开工作簿时,执行以下代码:
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
长风秋雁
TA贡献1757条经验 获得超7个赞
是的,你可以使用Application.OnTime
它,然后把它放在循环中。它有点像闹钟,你可以在你希望它再次响铃的时候保持按下按钮。以下内容每三秒更新一次Cell A1。
Dim TimerActive As BooleanSub StartTimer() Start_TimerEnd SubPrivate Sub Start_Timer() TimerActive = True Application.OnTime Now() + TimeValue("00:00:03"), "Timer"End SubPrivate Sub Stop_Timer() TimerActive = FalseEnd SubPrivate Sub Timer() If TimerActive Then ActiveSheet.Cells(1, 1).Value = Time Application.OnTime Now() + TimeValue("00:00:03"), "Timer" End IfEnd Sub
您可以将该StartTimer
过程放入Auto_Open
事件中并更改在该过程中完成的操作Timer
(现在它只是更新A1中的时间ActiveSheet.Cells(1, 1).Value = Time
)。
注意:您需要StartTimer
模块中的代码(除此之外),而不是工作表模块。如果您在工作表模块中有它,代码需要稍作修改。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
在工作簿事件中:
Private Sub Workbook_Open() RunEveryTwoMinutesEnd Sub
在一个模块中:
Sub RunEveryTwoMinutes() //Add code here for whatever you want to happen Application.OnTime Now + TimeValue("00:02:00"), "RunEveryTwoMinutes"End Sub
如果您只希望在工作簿打开后执行第一段代码,则只需在Workbook_Open
事件中添加2分钟的延迟
添加回答
举报
0/150
提交
取消