- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
9#
發表於 2011-7-7 08:29
| 只看該作者
本帖最後由 GBKEE 於 2011-7-7 08:48 編輯
回復 8# andylin
你上傳的是2007版 圖形 2003無法處裡
你無法下載檔案.下列程式碼你先存檔後再開啟試試看.
PS:每日08:45前開啟檔案數據才會落於正確時間位置- 'ThisWorkbook模組的程序
- Private Sub Workbook_Open() '此程式是檔案開啟時自動執行的程式
- Dim E As Range
- If MsgBox("啟動自動記錄資料??", vbYesNo) = vbNo Then Exit Sub
- Sheets("1分K").UsedRange.Offset(1, 1) = "" ' 清除昨日資料
- Sheets("5分K").UsedRange.Offset(1, 1) = ""
- Sheets("15分K").UsedRange.Offset(1, 1) = ""
- For Each E In Sheets("1分K").[A2:A302]
- Application.OnTime E, "ThisWorkbook.資料輸入" '依[A2:A302]內的時間執行程式 ->資料輸入
- Next
- End Sub
- Sub 資料輸入()
- Dim Ar()
- Ar = Array([MSCI權重50股!D2], [MSCI權重50股!E2], [MSCI權重50股!B2], "", _
- [Matrix!F2], [Matrix!F3], [Matrix!F4], [Matrix!F144], "", _
- [SUM(Matrix!AF16:AF47)], [SUM(Matrix!AF48:AF79)], [SUM(Matrix!AF80:AF111)], [SUM(Matrix!AF112:AF143)])
- 'Ar陣列 -> 存入你要的數據
- If Minute(Time) Mod 1 = 0 Then Sheets("1分K").Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(1, 8).Value = Ar 'Minute(Time) Mod 1=0 每分鐘
- If Minute(Time) Mod 5 = 0 Then Sheets("5分K").Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(1, 8).Value = Ar 'Minute(Time) Mod 1=0 每5分鐘
- If Minute(Time) Mod 15 = 0 Then Sheets("15分K").Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(1, 8).Value = Ar 'Minute(Time) Mod 1 =0 每15分鐘
- 'Range("B" & Rows.Count) -> Rows.Count列的總列數 2003版: Range("B65536")
- 'Range("B" & Rows.Count).End(xlUp) ->Range("B65536")往上移動到有資料的位置
- '往上移動到有資料的位置.Offset(1)->Offset(1,0)->往下位移(1列,0欄)
- '往上移動到有資料的位置.Offset(1).Resize(1, 8)->Resize擴充範圍(1列,8欄)
- End Sub
複製代碼 |
|