変数使って範囲指定したりするとき
頭悪いのでダブルクォーテーションの位置でいつも悩む
適当に色々やってみて何とかなるのだが
最近使ったのちょっとメモ
.Value = "=sum(" & Retu & "$" & Sho & ":" & Retu & "$" & Matu & ")"
.Offset(, 19).Value = WorksheetFunction.Average(Range("g" & .Row - 84 & ": g" & .Row - 1))
久々にメモ
エクセルには向かってるのですが最近パッとしないので更新する気も起こらず
今日はちょっと悩んだのでメモしとこうと
今向かってるのはこんな表
この使えるパターンを探す表でO9から有る、サンプリングした年ごとの損益を見るやつ
これには=SUM(O$16931:O$17988)こんな関数が入っていて
毎回行を調べて置換置換で使っていたのですが、面倒くさくなりマクロで自動化しようと
で作ったマクロは最下ですが
これをFor Eachで全部選択し実行すると時間がかかるかかる
15分たっても終わらなくて、こら手でやった方が早いわと途中でブレイクした次第です
それで最初に行を調べさせて横に動かせば早いかとか色々考えましたが
結局、1列目だけマクロを使いコピーして全体に貼付で落ち着きました
こうすればものの1分もかかりません
あ~スッキリ
Sub 年別集計() '
Dim Rp As Range
Dim P As Long
Dim Retu As String
Dim Sho As Long
Dim Matu As Long
Dim Nen As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Rp In Selection
With Rp
Retu = Split(.Address, "$")(1)
Nen = Range("n" & .Row).Value
For P = 40 To Range("a1048576").End(xlUp).Row
If Left(Range("a" & P).Value, 4) = Nen And Left(Range("a" & P).Offset(-1).Value, 4) <> Nen Then
Sho = P
ElseIf Left(Range("a" & P).Value, 4) = Nen And Left(Range("a" & P).Offset(1).Value, 4) <> Nen Then
Matu = P
Exit For
End If
Next
.Value = "=sum(" & Retu & "$" & Sho & ":" & Retu & "$" & Matu & ")"
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
久々にエクセルに専念
最近はメタエディターとエクセル行ったり来たりしててこの更新も久々
EAとエクセルの成績が乖離している問題なかなか解決出来ないのと、官製相場の所為だと思うが去年出たDDが大きいのがいやでいろいろ試しているところ
きょうは今まで5分足を使って2003年からのデータで検証していたのを、15分足を使って2001年迄延ばす作業。やっぱ検証期間は長い方が良いし15分足でも余り結果に差はないだろうと思って
出来たシステムの損益累計曲線
この通りだと素晴らしいのだがEAにすると何故かパフォーマンス落ちるのね~
EAにするのはまた明日
日曜だし早いけど飲んで帰ろ