FX自動売買ソフト製作のMagic EA Maker
もう少し [FX エクセル]
[FXシステムトレード] ブログ村キーワード
やはり歯抜けデータの問題は不可避だったので、対応中
以下は歯抜けを検出し、行を挿入するプロセス。
同じ時刻の価格を比べる必要があるため。
Sub InsertCell()
ZikanB = InputBox("【冬時間指定】何時からを抽出しますか?(0〜23)")
HunB = InputBox("【冬時間指定】何分から抽出しますか?(0〜59)")
ZikanE = InputBox("【冬時間指定】何時までを抽出しますか?(0〜23)")
HunE = InputBox("【冬時間指定】何分まで抽出しますか?(0〜59)")
For t = 0 To 10 Step 9
lastrow(0) = Cells(1, 1 + t).End(xlDown).Row 'MA40最終行
Cells(1, 1 + t).Activate
ic = 0
Do Until ActiveCell.Value = "" 'For ic = 1 To lastrow(0)
ic = ic + 1
Cells(ic, 1 + t).Activate
HSup = Minute(Cells(ic, 2 + t))
HSdown = Minute(Cells(ic + 1, 2 + t))
HScalc = HSdown - HSup
HidukeUp = Day(Cells(ic, 1 + t))
HidukeDown = Day(Cells(ic + 1, 1 + t))
HJ = Hour(Cells(ic, 2 + t))
OJ = Hour(Cells(ic, 2 + t))
HH = Minute(Cells(ic, 2 + t))
OH = Minute(Cells(ic, 2 + t))
If HidukeDown <> HidukeUp Then '日付が違っていたら
If HSdown <> HunB Then 'HHがスタートになっているかチェック
InsSuu = HSdown - HunB
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End If
If HSup <> HunE And Cells(ic + 1, 1) <> "" Then 'OHが終わりになっているかチェック
InsSuu = HunE - HSup
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End If
End If
Select Case HScalc
Case Is > 1 '1分毎か否か
If HidukeDown = HidukeUp Then '日付が同じか
InsSuu = HSdown - HSup - 1
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End If
Case Is < 0 '時間が異なる場合
InsSuu = 60 - Abs(HSdown - HSup - 1)
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End Select
Loop 'Next
Next t
End Sub
応援お願いします。m(__)m
↓ ↓ ↓ ↓
にほんブログ村
やはり歯抜けデータの問題は不可避だったので、対応中
以下は歯抜けを検出し、行を挿入するプロセス。
同じ時刻の価格を比べる必要があるため。
Sub InsertCell()
ZikanB = InputBox("【冬時間指定】何時からを抽出しますか?(0〜23)")
HunB = InputBox("【冬時間指定】何分から抽出しますか?(0〜59)")
ZikanE = InputBox("【冬時間指定】何時までを抽出しますか?(0〜23)")
HunE = InputBox("【冬時間指定】何分まで抽出しますか?(0〜59)")
For t = 0 To 10 Step 9
lastrow(0) = Cells(1, 1 + t).End(xlDown).Row 'MA40最終行
Cells(1, 1 + t).Activate
ic = 0
Do Until ActiveCell.Value = "" 'For ic = 1 To lastrow(0)
ic = ic + 1
Cells(ic, 1 + t).Activate
HSup = Minute(Cells(ic, 2 + t))
HSdown = Minute(Cells(ic + 1, 2 + t))
HScalc = HSdown - HSup
HidukeUp = Day(Cells(ic, 1 + t))
HidukeDown = Day(Cells(ic + 1, 1 + t))
HJ = Hour(Cells(ic, 2 + t))
OJ = Hour(Cells(ic, 2 + t))
HH = Minute(Cells(ic, 2 + t))
OH = Minute(Cells(ic, 2 + t))
If HidukeDown <> HidukeUp Then '日付が違っていたら
If HSdown <> HunB Then 'HHがスタートになっているかチェック
InsSuu = HSdown - HunB
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End If
If HSup <> HunE And Cells(ic + 1, 1) <> "" Then 'OHが終わりになっているかチェック
InsSuu = HunE - HSup
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End If
End If
Select Case HScalc
Case Is > 1 '1分毎か否か
If HidukeDown = HidukeUp Then '日付が同じか
InsSuu = HSdown - HSup - 1
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End If
Case Is < 0 '時間が異なる場合
InsSuu = 60 - Abs(HSdown - HSup - 1)
For icc = 1 To InsSuu
Range(Cells(ic + 1, 1 + t), Cells(ic + 1, 8 + t)).Insert
'lastrow(0) = lastrow(0) + 1
ic = ic + 1
Next
End Select
Loop 'Next
Next t
End Sub
応援お願いします。m(__)m
↓ ↓ ↓ ↓
にほんブログ村
2012-10-10 23:12
nice!(0)
コメント(0)
トラックバック(0)
GMOクリック証券
コメント 0