|
▼kanabun さん:
>あと、手順を変えて、
>
> → 1行目で 最終列を求め、その右となりの列に
> 各行の 最終データを Copyする
>
>という風にも 考えられませんか?
こういう考え方もあったのですね。まったく思いつきませんでした。
>
>Sub Try1()
> Dim LastCol As Long
> Dim wkCol As Long
>
> LastCol = Range("IV1").End(xlToLeft).Column '1行目の最後の(日付)データの列番号
> wkCol = LastCol + 1 'その右隣り(この列に最後のデータを転記)
>
> Dim LastRow As Long
> Dim c As Range '最終行まで 対象列にデータ書き込みLoop
> LastRow = Range("A65536").End(xlUp).Row
> For Each c In Range(Cells(2, wkCol), Cells(LastRow, wkCol))
> c.Value = c.End(xlToLeft).Value
> Next
>
> Range("B1", Cells(1, LastCol)).EntireColumn.Select
> If MsgBox("転記が完了しました。データ列を削除しますか?", _
> vbOKCancel) = vbOK Then
> 'Selection.Delete '指定列を削除
> End If
>
>End Sub
これで解決できました。私のマクロをよく見るとiとjが誤っていただけのようにも思われますが、処理速度が遅かったため、kanabunさんの方法の方が数段優れていることもわかりました。まことにありがとうございました。
|
|