我有一個名爲UpdateMacro
宏從更新我的數據庫我的Excel創建在Excel宏其執行其他宏觀每2秒
我想創建一個宏名爲RepeatMacro
它會自動執行UpdateMacro
每2秒並且僅提供啓動和停止按鈕來啓動和停止執行RepeatMacro
。
怎麼辦?
我有一個名爲UpdateMacro
宏從更新我的數據庫我的Excel創建在Excel宏其執行其他宏觀每2秒
我想創建一個宏名爲RepeatMacro
它會自動執行UpdateMacro
每2秒並且僅提供啓動和停止按鈕來啓動和停止執行RepeatMacro
。
怎麼辦?
谷歌爲Application.OnTime
例如
Dim dtNextRunTime As Date
dtNextRunTime = Now + TimeSerial(0,0,2)
Application.OnTime dtNextRunTime, "MyProcedure", True
要清除以前設置的過程,您需要保存調度的時間) dtNextRunTime以上),然後用:
Application.OnTime dtNextRunTime, "MyProcedure", False
下面是一個示例VB模塊方法StartSchedule/StopSchedule讓你去:
Private m_dtScheduledTime As Date
Private m_lDelaySeconds As Long
Private m_bIsScheduled As Boolean
Private Sub DoWork()
m_bIsScheduled = False
' ... do your work
' Reschedule at the same frequency once completed
StartSchedule m_lDelaySeconds, "DoWork"
End Sub
Public Sub StartSchedule(ByVal DelaySeconds As Long)
StopSchedule
m_lDelaySeconds = DelaySeconds
m_dtScheduledTime = Now + TimeSerial(0, 0, m_lDelaySeconds)
Application.OnTime m_dtScheduledTime, "DoWork", True
m_bIsScheduled = True
End Sub
Public Sub StopSchedule()
If m_bIsScheduled Then
Application.OnTime m_dtScheduledTime, "DoWork", False
m_bIsScheduled = False
End If
End Sub
感謝您的輸入。我檢查了'Application.OnTime',並得到了一個印象,它是在指定的時間運行宏。但是我不需要在特定的時間運行宏。我想在整個24小時內每秒運行一次。所以我不能只指定時間。什麼可以是其他選擇? – 2011-03-28 06:58:51
@PARTH,那麼,在宏的末尾,你有2秒後設置一個新的計時器... – jswolf19 2011-03-28 07:11:53
@ jswolf19:謝謝喬。是的,不要忘記@ jswolf19在做出這個答案時的貢獻。感謝JsWolf19,你的鏈接幫助了很多。 :) :)感謝你們兩個。有效..!! – 2011-03-28 11:04:09
這將運行UpdateMacro
每兩秒鐘,假設UpdateMacro花費不到兩運行幾秒鐘。
Sub RepeatMacro()
Dim lastRunTime
Do
lastRunTime = Now
Range("A1") = "Last run: " & Format(lastRunTime, "hh:nn:ss")
Call UpdateMacro
DoEvents
Application.Wait lastRunTime + TimeValue("00:00:02")
Loop
End Sub
Sub UpdateMacro()
Debug.Print "running UpdateMacro"
End Sub
編輯啓動並從您的薄片停止RepeatMacro
,使一個啓動按鈕和停止按鈕,並把下面的代碼你的表模塊中。另外請注意,我在上面的RepeatMacro
中添加了一個DoEvents
。
Private Sub StartButton_Click()
Call RepeatMacro
End Sub
Private Sub StopButton_Click()
MsgBox "Stopped."
End
End Sub
現在只是說End
是不好的做法,但你明白了。
@ Jean-Francois Corbett:謝謝你的回覆。如何停止這個RepeatMacro? – 2011-03-28 08:35:25
@PARTH:編輯我的答案來解決這個問題。 – 2011-03-28 09:57:38
是的,我讀過它。謝謝:)我會盡快嘗試代碼並回復你 – 2011-03-28 09:59:44
您是否考慮過在必要時進行更新,而不是每2秒更新一次? [This](http://www.cpearson.com/excel/OnTime.aspx)可能有助於你目前的要求,雖然... – jswolf19 2011-03-28 06:57:59
@ jswolf19:不,這是我的應用程序的neccesity每更新一次2-3秒。 – 2011-03-28 07:00:46