標題:
tick資料轉換分鐘資料(已下載資料)
[打印本頁]
作者:
學生~~
時間:
2015-3-10 07:16
標題:
tick資料轉換分鐘資料(已下載資料)
我已經下載當天時間資料,
想將Tick各種頻率資料轉換成
1、5、10、30、60分鐘資料。
不知道怎麼寫程式嗎??
麻煩各位幫幫我~~
作者:
GBKEE
時間:
2015-3-10 09:01
回復
1#
學生~~
可參考這裡
作者:
學生~~
時間:
2015-3-10 18:29
感謝大大指教~~
但有些附件還沒有權限可以參考實在很難有頭緒。
在有資料時很順,但在沒資料時...如何找上一筆資料。
With Worksheets("1分鐘")
Onerow = .Range("a1048576").End(xlUp).Row
.Range("C2") = Worksheets("TICK").Range("E2")
Findum = Worksheets("TICK").Range("D2
1048576").Find(.Range("B" & 2)).Row
End With
但不是每一分鐘都有資料,像是91200就找不到資料,那要怎麼找到上一筆資料。
作者:
GBKEE
時間:
2015-3-11 10:52
回復
3#
學生~~
試試看
Option Explicit
Sub Ex()
Dim Ar(), i As Integer, Rng As Range
Ar = Sheets("1分鐘").UsedRange.Columns("B:G").Value
For i = 2 To UBound(Ar)
With Sheets("Tick").Columns(4)
If Not .Find(Ar(i, 1), LookAt:=xlWhole) Is Nothing Then
.Replace Ar(i, 1) & "", "=aa" '同一分鐘的時間替換為錯誤值
Set Rng = .SpecialCells(xlCellTypeFormulas, xlErrors) '錯誤值的範圍
Rng.Value = Ar(i, 1) '回復時間
With Rng.Offset(, 1) '成交價格欄
Ar(i, 2) = .Cells(1) '開盤價(第一個Cell)
Ar(i, 3) = Application.Max(.Cells) '最高價
Ar(i, 4) = Application.Min(.Cells) '最低價
Ar(i, 5) = .Cells(.Count) '收盤價(最後一個Cell)
Ar(i, 6) = Application.Sum(Rng.Offset(, 2)) '成交量
End With
End If
End With
Next
Sheets("1分鐘").UsedRange.Columns("B:G") = Ar
Ex_資料轉換統計 Sheets("5分鐘"), 5
Ex_資料轉換統計 Sheets("10分鐘"), 10
Ex_資料轉換統計 Sheets("30分鐘"), 30
Ex_資料轉換統計 Sheets("60分鐘"), 60
End Sub
Sub Ex_資料轉換統計(Sh As Worksheet, xTime As Integer)
Dim Ar(), Rng As Range, i As Integer
With Sh
.UsedRange.Columns("C:G").Offset(1) = ""
Ar = .UsedRange.Columns("B:G").Value
For i = 2 To UBound(Ar)
Set Rng = Sheets("1分鐘").Columns("B").Find(Ar(i, 1), LookAt:=xlWhole).Offset(-xTime).Resize(xTime)
With Rng.Offset(, 1) '成交價格欄
Ar(i, 2) = .Cells(1) '開盤價(第一個Cell)
Ar(i, 3) = Application.Max(.Cells) '最高價
Ar(i, 4) = Application.Min(.Cells) '最低價
Ar(i, 5) = .Cells(.Count) '收盤價(最後一個Cell)
Ar(i, 6) = Application.Sum(Rng.Offset(, 5)) '成交量
End With
Next
.UsedRange.Columns("B:G") = Ar
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)