- 帖子
- 82
- 主題
- 7
- 精華
- 0
- 積分
- 112
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- WIN7
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-1-3
- 最後登錄
- 2020-9-21
|
[分享] 分享的定時抓DDE資料程式碼,但是需要人指點迷津
這陣子忙著統計資料,一方面又架構系統,感謝此討論區很多版大的協助,終於有一個完整的版本想分享給大家
一般不管是金融業人或是一般投資人 都會利用券商的DDE 去抓資料 並且做分析或式操作
有一個朋友給了我一個範例 如下 我想分享給大家,拍謝因為抓的DDE資料不同 請各位自行調整 但是我有一個地方相當的不懂 希望請前輩用白話文分析
整個程式碼是這樣子 這個程式碼可以自己修改抓資料的時間 願與大家分享共同討論- Option Explicit
- Dim T1 As Date
- Const 開始 = "08:45:05"
- Const 結束 = "13:46:08"
- Const 週期1 = "0:0:10"
- Sub start()
- Call StopTimer
- Call Timer1
- End Sub
- Sub StopTimer()
- On Error Resume Next
- Application.OnTime T1, "Timer1", , 0
- T1 = 0
- End Sub
- Sub Timer1()
- If T1 Then
- Sheets("台指").Range("B6000").End(xlUp).Offset(1, 0) = Sheets("sheet1").Range("B2")
- Sheets("電指").Range("B6000").End(xlUp).Offset(1, 0) = Sheets("sheet1").Range("B4")
- Sheets("金指").Range("B6000").End(xlUp).Offset(1, 0) = Sheets("sheet1").Range("B6")
- End If
- T1 = TimeNext(開始, 結束, 週期, Now)
- If T1 Then Application.OnTime T1, "Timer1"
- End Sub
- Function TimeNext(TStart As String, TEnd As String, TFrequency As String, TNOW As Date)
- If TNOW < Int(TNOW) + TimeValue(TStart) Then
- TimeNext = Int(TNOW) + TimeValue(TStart)
-
- ElseIf _
- TNOW >= Int(TNOW) + TimeValue(TEnd) Then
-
- TimeNext = 0
-
- Else
-
- TimeNext = Int((TNOW + TimeValue(TFrequency) + 0.5 / 86400) / TimeValue(TFrequency)) * TimeValue(TFrequency)
-
-
-
- End If
- End Function
複製代碼 我想請問有沒有人能用很白的白話文解釋這個函式 的最後一個判斷式
TimeNext = Int((TNOW + TimeValue(TFrequency) + 0.5 / 86400) / TimeValue(TFrequency)) * TimeValue(TFrequency)
為什麼作者要這樣子設定呢?
不知道當初設計的朋友有沒有再版上 一起說聲感謝~ |
|