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
提交
取消
