2016-03-15 99 views
0

我想保留這整個代碼在ThisWorkbook模塊只有。但是當我將EventCode/ProcedureCode保存在Thisworkbook Module中時,它不起作用。Application.Ontime程序代碼不工作在本工作簿模塊

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

您需要使用「ThisWorkbook.EventCode」作爲例程名稱。你爲什麼要在這個模塊中使用它 - 它並不真正屬於那個模塊。 – Rory

+0

啊!!!我花了將近半天的時間,通過將代碼轉換爲新模塊和所有代碼來找到解決此問題的解決方案。感謝您的快速解決方案:) – Sixthsense

回答

-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 

祝你好運!