[[20230131152107]] 『コピペする範囲をずらしたいです』(マクロ初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『コピペする範囲をずらしたいです』(マクロ初心者)

前任の方が作ったマクロを修正したく、質問させていただきます。
初心者なので質問が不十分の場合はご教示ください。

〜略〜

Workbooks.Open Filename:=(File1(Counter1))
    Worksheets("Sheet1").Select
    
    Workbooks("Book1.xlsm").Activate
If ActiveCell.Offset(1, 0) = 1 Then
    Range(Selection, Selection.Columns("C:H")).Select
    Selection.Copy
    
Else
    Range(Selection, Selection.Columns("C:H")).Select
    Range(Selection, Selection.End(xlDown).Offset(-1, 0)).Select
    Selection.Copy

End If

〜略〜

上記のマクロを使用すると、Book1のB:Hをコピーして、
呼び出したファイルのSheet1にB:Hを貼り付けという動作を行います。

このコピー範囲をBook1のC:Hにしたいです。

よろしくお願いします。

< 使用 Excel:unknown、使用 OS:unknown >


お示しのコードを見る限りでは、
Selection(選択範囲)がC〜H列内にあればコードを変えなくてもそうなると思います。
(ふなば) 2023/01/31(火) 16:12:14

よく見てみると少し違っていますね。
Range(Selection, Selection.Columns("C:H"))はSelectionの先頭列基準に8列選択するので
A:H、B:I、C:J列のように8列選択するはずです。質問のような選択はできないはずのものです。
(ふなば) 2023/01/31(火) 17:18:21

 Workbooks.Open Filename:=(File1(Counter1))
 Worksheets("Sheet1").Select

 Workbooks("Book1.xlsm").Activate
 Intersect(Range(Selection, Selection.End(xlDown).Offset(-1, 0)).EntireRow, Columns("C:H")).Copy

これできっとご希望の働きはしてくれると思います。
元に戻したいときは上記Columns("C:H")をColumns("B:H")にしてください。
(ふなば) 2023/01/31(火) 17:41:55


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.