返回列表 上一主題 發帖

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

回復 30# basarasy


    因為ONTIME是為將來設定執行程序
所以應該用帶參數的程序來判斷時間是否超過
在程序nn的第一行程序If Now > T Then Exit Sub
設置中斷點
執行test即可了解
  1. Sub test()
  2. mytime = Now
  3. mystr = "'nn " & Chr(34) & mytime & Chr(34) & "'"
  4. Application.OnTime mytime, mystr
  5. End Sub
  6. Sub nn(T As Date)
  7. If Now > T Then Exit Sub
  8. MsgBox "執行"
  9. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 30# basarasy
是不是如此
  1. Sub Ex()
  2.     If Time > TimeValue("09:00") And Time < TimeValue("13:30") Then
  3.         Application.OnTime Time + TimeValue("00:00:10"), "????"
  4.     End If
  5. End Sub
複製代碼

TOP

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

回復 30# basarasy

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

TOP

謝謝大大.
但我是想問  
指定時間(9:00:10)
在8:59:59 RUN EX
等到9:00:10  自動RUN "????"

9:00:11  RUN EX  不會RUN "????"
50 字節以內
不支持自定義 Discuz! 代碼

TOP

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

TOP

回復 35# 三寶
Hsieh版主的程式碼Application.OnTime時所執行的程序要加上引數
程序有引數時 呼叫此程式 必須在空一格後加上引數 程序的引數有指定型態時 引數要是同型態
複製程式碼 執行看看
Sub test()
mytime = Now
mystr = "'nn " & Chr(34) & mytime & Chr(34) & "'"
MsgBox  mystr
Application.OnTime mytime, mystr
End Sub
Sub nn(T As Date)     '引數型態是日期
MsgBox "執行時間"&t
End Sub

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題