返回列表 上一主題 發帖

想請教-在設定的日期自動執行巨集

感謝GBKEE版大,我是這樣寫啦:
Sub macro1()
Application.OnTime "2010/10/19 22:55:30"
MsgBox Format(Now, "YYYY/M/D  H:M:ss")
End Sub
然後我直接執行macro1,
這樣沒辦法執行...
不過沒關係,我就放在Sub EX()就可以了,
謝謝.

TOP

回復 21# 三寶
expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
OnTime必要引數
EarliestTime觸發時間
Procedure程序名稱
學海無涯_不恥下問

TOP

不好意思,我發現一個問題,我的VBA是這樣寫:
Sub EX()
Application.OnTime "2010/10/19 17:26:00", "macro1"
Application.OnTime "2010/10/20 17:26:00", "macro2"
Application.OnTime "2010/10/21 17:26:00", "macro3"
End Sub
我昨天執行正常,因為昨天是10月19日,10月20日還沒到,所以macro2跟macro3不會觸發,
可是今天再打開檔案,再執行EX,
結果發現昨天的macro1又再執行了一次,
而把今天的資料都蓋掉了,
這....這.....這該怎麼辦?
要怎麼寫才表示過了10月19日之後,就不會再次執行macro1呢?
謝謝.....

TOP

回復 23# 三寶
遇到資料刪除無法復原時 關閉檔案時選擇 不要存檔 重新開啟檔案 就可以
  1. Sub Ex()
  2.     Dim Macro$
  3.     If Date = "2010/10/19" Then
  4.         Macro = "Macro1"
  5.     ElseIf Date = "2010/10/20" Then
  6.         Macro = "Macro2"
  7.     ElseIf Date = "2010/10/21" Then
  8.         Macro = "Macro3"
  9.     End If
  10.     Application.OnTime "17:26:00", Macro
  11. End Sub
複製代碼

TOP

感謝GBKEE版大熱心回覆,
我試過,可以解決了
不過我改成:
Sub EX()
If Date = "2010/10/20" Then
Application.OnTime "2010/10/20 21:15:00", "macro1"

ElseIf Date = "2010/10/21" Then
Application.OnTime "2010/10/21 21:17:20", "macro2"

ElseIf Date = "2010/10/22" Then
Application.OnTime "2010/10/22 21:26:00", "macro3"

End If
End Sub
這樣也行,重開檔案之後,不會再去執行昨天的macro了(我有改系統日期測試過),
因為我很多時間是不一樣的,這樣比較好改,
謝謝你,又多學了一招......

TOP

回復 25# 三寶
  1. Sub EX()
  2. If Date = "2010/10/20" Then
  3. Application.OnTime "21:15:00", "macro1"
  4. ElseIf Date = "2010/10/21" Then
  5. Application.OnTime "21:17:20", "macro2"
  6. ElseIf Date = "2010/10/22" Then
  7. Application.OnTime "21:26:00", "macro3"
  8. End If
  9. End Sub
複製代碼

TOP

感謝GBKEE版大提供更簡潔的寫法,
這樣可以少打很多字了,
謝謝.....

TOP

回復 26# GBKEE


    請問大大.
如果時間過了再run都是可行的.
可以set定只有特定時間才run嗎?
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復  GBKEE
    請問大大.
如果時間過了再run都是可行的.
可以set定只有特定時間才run嗎?
basarasy 發表於 2010-10-21 19:28

Application.OnTime  "指定特定的時間","執行的程式"
"指定特定的時間"-> ,必須是執行此程式碼的時間之後才行的.
請詳看VBA的說明

TOP

回復 29# GBKEE


    那麼請問要指定時間才run,不到時間和過了時間不會run 如果寫?
50 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 有心就有福,有願就有力,自造福田,自得福緣。
返回列表 上一主題