PU-METALのブログ

日銀にはウンザリなので外貨専になりました

久々にメモ

エクセルには向かってるのですが最近パッとしないので更新する気も起こらず

今日はちょっと悩んだのでメモしとこうと

 

今向かってるのはこんな表

f:id:kohnodechu:20170617134325p:plain

 

この使えるパターンを探す表で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