为了账号安全,请及时绑定邮箱和手机立即绑定

VBA Macro On Timer样式每隔几秒钟运行代码,即120秒

VBA Macro On Timer样式每隔几秒钟运行代码,即120秒

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


查看完整回答
反对 回复 2019-08-08
?
长风秋雁

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模块中的代码(除此之外),而不是工作表模块。如果您在工作表模块中有它,代码需要稍作修改。


查看完整回答
反对 回复 2019-08-08
?
慕桂英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分钟的延迟


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 1729 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信