如何將台指期的每一分鐘資料都紀錄在sheet 1裡..請教版上高手前輩~~
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 23# cfuxiong
試試看- Option Explicit
- Private Sub Workbook_Open()
- With Sheets("策略記錄")
- .Cells(4, 2) = 9 ' 紀錄從10列開始
- .Range(.Cells(10, 1), .Cells(10, 1).End(xlDown).Offset(, 8)) = ""
- '清除 舊有資料
- End With
- Timer_DEE
- End Sub
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- On Error Resume Next
- Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer_DEE", , False
- End Sub
- Public Sub Timer_DEE()
- 'Timer 函數 傳回一 Single,其內容為從前一個午夜算起到現在所經過的秒數。
- '變數,程序:名稱要避免使用VBA 的內定關鍵字
- Dim Pos As Integer, i As Integer, RangeStr As String
- On Error Resume Next
- Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer_DEE" '每秒顯示
- Sheets("策略記錄").Cells(3, 2) = Time '將時間show至策略的b3欄位
- 'Dim HHMM As Integer
- 'HHMM = Hour(Time) * 100 + Minute(Time)
- 'If (HHMM < 845 Or HHMM > 1345) Then Exit Sub '營業時間才執行
- If Time < #9:00:00 AM# Or Time > #1:30:00 PM# Then Exit Sub '營業時間才執行
- If Second(Time) Mod 30 = 0 Then '間隔30秒
- 'If Second(Time) Mod 5 = 0 Then '間隔5秒 10秒 15秒 ....
- With Sheets("策略記錄")
- .Cells(4, 2) = .Cells(4, 2) + 1 '將變動行號加一行
- Pos = .Cells(4, 2)
- .Cells(Pos, 1) = Time
- .Cells(Pos, 2).Resize(, 8) = .[b2:i2].Value
- 'Sheets("策略記錄").[b2:i2] 分別是以下的DEE
- '[多空力道][反向勢力][主力控盤][台指期 成交價][台指期 成交價][摩台指][韓國綜合][日經指數]
- End With
- End If
- End Sub
複製代碼 |
|
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
本帖最後由 GBKEE 於 2012-12-15 07:21 編輯
回復 37# cfuxiong
程式碼中 每行程式碼 前面的 ' 是作為程式碼的註解(解釋用) 程式不會執行的- If Time < #9:00:00 AM# Or Time > #1:30:00 PM# Then Exit Sub '營業時間才執行
- If Second(Time) Mod 60 = 0 Then '間隔60秒
- 'If Second(Time) Mod 5 = 0 Then '間隔5秒 10秒 15秒 .... 這行是註解解釋 舉列 5 為每5秒 類推....
- With Sheets("策略記錄")
- .Cells(4, 2) = .Cells(4, 2) + 1 '將變動行號加一行
- Pos = .Cells(4, 2)
- .Cells(Pos, 1) = Time
- ' .Cells(Pos, 2).Resize(, 8) = .[b10:g10].Value '** 如執行此行 會有2個 "#NA"
- ' ***** Resize(, 8)這裡是8欄 ,[b10:g10] 這裡 b:g 只有6欄
- .Cells(Pos, 2).Resize(, 6) = .[b2:g2].Value ' 執行此行就可以 ** 要修改為 6及位址 **
- 'Sheets("策略記錄").[b2:i2] 分別是以下的DEE
- '[多空力道][反向勢力][主力控盤][摩台指][韓國綜合][日經指數] '只有6欄
- End With
- End If
複製代碼 |
|
|
|
|
|
|
|