Board logo

標題: Application.OnTime 是否在執行中的語法? [打印本頁]

作者: t8899    時間: 2014-8-5 13:18     標題: Application.OnTime 是否在執行中的語法?

開始==> Application.OnTime The_Time, "timestock"
停止==> Application.OnTime The_Time, "timestock", Schedule:=False

請教 timestock 是否在執行中的語法 ???
if ........then
作者: GBKEE    時間: 2014-8-5 15:47

回復 1# t8899
試試看
  1. Option Explicit
  2. Dim The_Time As Date, Msg As Boolean
  3. Sub EX()
  4.     MsgBox "timestock  " & IIf(Msg, "執行中", "已停止")
  5. End Sub
  6. Sub Ex_開始()
  7.     Msg = True
  8.     The_Time = Time + #12:01:00 AM#
  9.     Application.OnTime The_Time, "timestock"
  10. End Sub
  11. Sub Ex_停止()
  12.     Msg = False
  13.     Application.OnTime The_Time, "timestock", False
  14. End Sub
複製代碼

作者: t8899    時間: 2014-8-5 20:30

本帖最後由 t8899 於 2014-8-5 20:40 編輯
回復  t8899
試試看
GBKEE 發表於 2014-8-5 15:47

謝謝
我的問題是
  Application.OnTime The_Time, "timestock", Schedule:=False
有時這行停止無效,也沒有出現訊息,....然後再重跑,變成兩個timestock同時在跑
不知如何解決?有無特殊處理方法讓它停止?我都關檔再重開!
如果在 "timestock" 執行之前做一個開關 Msg As Boolean
timestock 的真正執行狀態應不受msg 的影響 ??(不會傳給msg)
所以我要的應是
if timestock 正在執行中 則跳出否則 執行
作者: GBKEE    時間: 2014-8-6 06:04

回復 3# t8899
VBA沒有函數可傳回程式中有幾個Application.OnTime在執行中.
   
我的問題是
  Application.OnTime The_Time, "timestock", Schedule:=False
有時這行停止無效,也沒有出現訊息,....然後再重跑,變成兩個timestock同時在跑

Application.OnTime The_Time, "timestock"
有時這行停止無效 Application.OnTime The_Time, "timestock", Schedule:=False
會是因為你The_Time變數給的時間不一樣所致.
請試將 timestock變數在一般模組頂端,設為公用的變數,
作者: t8899    時間: 2014-8-6 06:26

本帖最後由 t8899 於 2014-8-6 06:37 編輯
回復  t8899
VBA沒有函數可傳回程式中有幾個Application.OnTime在執行中.
請試將 timestock變數在一般模組頂端,設為公用的變數
GBKEE 發表於 2014-8-6 06:04

謝謝 !
我設的變數為  The_Time = Time + my
公用變數是要設定The_Time 還是 my ?還是全設?
Public The_Time  As Date
Public my As Date
作者: t8899    時間: 2014-8-6 06:44

本帖最後由 t8899 於 2014-8-6 06:45 編輯

抱歉,我發現我有設為public為
Public The_Time As Date
Dim my As Date
my 也要設為  public ??是這問題嗎造成的嗎?




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)