返回列表 上一主題 發帖

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

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

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版大熱心回覆,
我試過,可以解決了
不過我改成:
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

回復 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

不好意思,我發現一個問題,我的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

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

TOP

感謝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

回復 19# 三寶
不過Application這一句不能直接放在macro1裡
你如何寫 PO 上看看

TOP

感謝oobird,GBKEE版大熱心解惑,
Sub Ex()
Application.OnTime "2010/10/20 09:00", "Macro1"
End Sub
已經試過完全可行了,
Sub auto_open()也可以,
我發現隨便Sub什麼都行,sub aa()也可以
重點是日期的表示方法,要用2010/10/19
我之前一直用2010,10,19....所以不行
不過Application這一句不能直接放在macro1裡
它說....編譯錯誤,引數不為選擇性(optional).....
嗯...還有很多要學的,
謝謝你們.

TOP

回復 17# oobird
多謝指正 已修正
回復 16# 三寶
貼在Module2  注意 如Module1裡還有相同名稱 Sub Macro1() 時
需指明是哪一個模組  Application.OnTime "2010/10/20 09:00", "Module2.Macro1"

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題