Board logo

標題: 關於OnTime發生的錯誤,求解!~~感恩 [打印本頁]

作者: oklin    時間: 2015-4-25 22:26     標題: 關於OnTime發生的錯誤,求解!~~感恩

小弟用了workbook的Open事件來啟動一個用了OnTime功能,來抄錄盤中股價的即時變化,但跑到預設結束時間,出了一個錯誤訊息,請各位前輩幫忙告訴我問題出在哪裡?
編碼如下
Private Sub Workbook_Open()
    Application.OnTime TimeValue("21:34:00"), "價差紀錄"
End Sub
--------------------------------------------------------------------------
Sub 價差紀錄()
    Dim Line As Double
    Dim Close_T As String
    Line = Sheet1.Range("F1").End(xlDown).Row
    Close_T = Format(Time, "h:m")
    If Close_T <> "21:35" Then
        Sheet1.Cells(Line + 1, 6) = Cells(2, 6)
        Sheet1.Cells(Line + 1, 7) = Cells(2, 7)
        Application.OnTime Now + TimeValue("00:00:05"), "價差紀錄"
    Else
         Application.OnTime Now + TimeValue("00:00:05"), "價差紀錄", , False
    End If
End Sub
錯誤訊息如下:
[attach]20798[/attach]
作者: stillfish00    時間: 2015-4-27 09:40

回復 1# oklin
你的Else那段完全沒用~

Application.OnTime 是排程
用False參數是取消某時間的排程
既然你時間到就不再排程了,那麼該時間就沒東西可以取消

而且要取消的話,時間要一致,你這樣是不會一致的
作者: oklin    時間: 2015-4-27 22:58

回復 2# stillfish00
感謝您的回覆,但我不是很了解您的意思,字面上我的排程除了一開始的Workbook open觸發的是一個固定時間,之後就是每隔5秒啟動一次,也就是下面這一行
Application.OnTime Now + TimeValue("00:00:05"), "價差紀錄"
Esle之後取消的也是
Application.OnTime Now + TimeValue("00:00:05"), "價差紀錄",,False
另請教一下,我試要上傳檔案,彈系統告訴我不支援此類擴展明的檔案,請問我該如何處理。
作者: stillfish00    時間: 2015-4-28 14:05

回復 1# oklin
假設現在時間 21:34:55
執行一次'價差紀錄':
    Close_T <> "21:35" 所以執行 Then 區塊程式碼
    Application.OnTime Now + TimeValue("00:00:05"), "價差紀錄"
    預約了下次執行時間 大約在 21:35:00  , 結束
   
時間 21:35:00
執行'價差紀錄':
    Close_T = "21:35" 所以執行 Else 區塊程式碼
    Application.OnTime Now + TimeValue("00:00:05"), "價差紀錄", , False
    取消卻是取消已預約在 21:35:05 的'價差紀錄'


*會說大約是因為,如果你前面執行的程式碼一多,
當你執行到Now時取得的時間可能已不是21:34:55

上傳附件有限制副檔名,你可以壓縮再傳,下圖有寫
[attach]20816[/attach]
作者: oklin    時間: 2015-4-29 21:34

回復 2# stillfish00
所以您的意思是,因為我的需求是到了某一時間就停止每5秒抓一次資料,所以,我只須判斷時間到了沒,如果還沒有到,就預約下一個5秒,一旦時間到了就不用預約,OnTime就停了。對嗎?
所以我只須把
Else
         Application.OnTime Now + TimeValue("00:00:05"), "價差紀錄", , False
砍掉就可達成我的期望了!
作者: stillfish00    時間: 2015-4-30 12:06

回復 5# oklin
是的,沒錯




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