返回列表 上一主題 發帖

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

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

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

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

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

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

TOP

本帖最後由 三寶 於 2010-10-21 23:23 編輯

回復 30# basarasy

我按照GBKEE版大的寫法,
就會達成你的要求啦
時間沒到不會RUN
時間過了也不會RUN
應該沒錯,你再試試看吧...

TOP

回復 30# basarasy
嗯,對啊,目前我試了是這樣沒錯,
不過要指定日期
If Date="2010/10/21"  Then
這樣的話,只有在指定那一天的那個時間才會RUN
過了那個時間再RUN EX,它也不會RUN
可是沒有指定日期的話,那過了那個時間它還是會再RUN一次,
因為Hsieh版大寫的VBA我看不懂,
所以我還是用GBKEE版大的方法做,
到現在試起來是OK的,
你試試看吧,如果有發現什麼行不通的地方,
再通知一下,
說不定我沒發現到,
謝謝.

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題