Application.Ontime Procedure Code在本工作簿模块中不起作用

时间:2016-03-15 10:40:23

标签: excel excel-vba excel-2010 excel-2007 vba

我想将此完整代码保留在仅限本工作簿模块中。但是当我将EventCode / ProcedureCode保存在Thisworkbook Module中时,它无效。

Dim alertTime As Date
Sub StartMacro()
    alertTime = Now + TimeValue("00:00:01")
    Application.OnTime alertTime, "EventCode"
End Sub
Sub StopMacro()
    alertTime = Now + TimeValue("00:00:01")
    Application.OnTime alertTime, "EventCode", , False
End Sub
Sub EventCode()
    MsgBox "Okay", vbInformation, "I am working"
    ThisWorkbook.StartMacro
End Sub

同样正常工作如果我将事件代码保留在新模块中。

有关如何通过将整个代码保留在ThisWorkbook模块中来使其工作的任何建议。

1 个答案:

答案 0 :(得分:-1)

您好请使用下面的代码......这应该有效。 首先调用StartTheMachine然后调用StopMacro来停止它。

Dim bTickerIsOn As Boolean
Sub StartMacro()
    Application.OnTime Now + TimeValue("00:00:01"), "EventCode", , bTickerIsOn
End Sub
Sub StopMacro()
    bTickerIsOn = False
End Sub
Sub StartTheMachine()
    bTickerIsOn = True
    StartMacro
End Sub
Sub EventCode()
    Range("A1") = Time 'I used this instead of the msgbox to show the action
    If bTickerIsOn Then StartMacro
End Sub
祝你好运!