Board logo

標題: [發問] 請教 match K線 問題? [打印本頁]

作者: seemee    時間: 2012-9-14 13:18     標題: 請教 match K線 問題?

If Time < TimeValue("8:45:00") Or Time > TimeValue("13:46:00") Then Exit Sub
'If Sheet1.Range("大台成交量") = LastVol1 Then Exit Sub
pos1 = Application.Match(Sheet1.Range("大台時間"), Sheet1.Range("時間一"), 1) + 301
If pos1 > 601 Then pos1 = 601
成交價 = Sheet1.Range("大台成交價")
成交量 = Sheet1.Range("大台成交量")
If Not (Application.WorksheetFunction.IsNA(pos1) Or Application.WorksheetFunction.IsErr(pos1)) Then
    If Sheet1.Cells(pos1, 2) = "" Then
        Sheet1.Cells(pos1, 2) = 成交價
        Sheet1.Cells(pos1, 3) = 成交價
        Sheet1.Cells(pos1, 4) = 成交價
        Sheet1.Cells(pos1, 5) = 成交價
        Sheet1.Cells(pos1, 6) = 成交量 - LastVol1
        LastVol1 = 成交量
    Else
        If 成交價 > Sheet1.Cells(pos1, 3) Then
            Sheet1.Cells(pos1, 3) = 成交價
        End If
        If 成交價 < Sheet1.Cells(pos1, 4) Then
            Sheet1.Cells(pos1, 4) = 成交價
        End If
        Sheet1.Cells(pos1, 5) = 成交價
        Sheet1.Cells(pos1, 6) = Sheet1.Cells(pos1, 6) + 成交量 - LastVol1
        LastVol1 = 成交量
    End If
End If

這是收集K線的片段VBA
當中用到MATCH 可是裡面沒有設定多久RUN一次
那是一直循環嗎?
X座標(時間一)已經先打好了 09:00,09:01,09:02......
再用MATCH比對現在時間(大台時間) 那怎麼知道多久比對一次還是不斷在比對?
作者: luhpro    時間: 2012-9-15 00:28

本帖最後由 luhpro 於 2012-9-15 00:30 編輯
If Time < TimeValue("8:45:00") Or Time > TimeValue("13:46:00") Then Exit Sub
'If Sheet1.Range("大台 ...
再用MATCH比對現在時間(大台時間) 那怎麼知道多久比對一次還是不斷在比對?...
seemee 發表於 2012-9-14 13:18

觀察該段程式中,
唯一與時間有關的程式碼為:
If Time < TimeValue("8:45:00") Or Time > TimeValue("13:46:00") Then Exit Sub
然而這段程式碼的功能僅僅是判斷若非盤中時間則跳出此 Sub 不執行其內的其他作業.


pos1 = Application.Match(Sheet1.Range("大台時間"), Sheet1.Range("時間一"), 1) + 301
則只是執行一個計算作業的程式碼.

故而你想要知道到底是多久比對一次的指令並不在你所提供的程式段中.
此段程式碼(每單次比對動作)執行頻率要看實際上其所在的 Sub 區塊多久會被呼叫一次(僅於盤中時段).
作者: seemee    時間: 2012-9-15 08:12

回復 2# luhpro


    還是我把VBA檔案 傳上來讓你看看
  這樣好嗎?




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