| 
    
     |  | ▼[名前なし] さん: 
 エラーそのものは、たとえばシート上で複数セル領域をいくつか選択して
 Ctrl/c とやると、エクセルから叱られますね。
 これは仕様です。
 
 それより、むりやり1つのロジックにまとめる必要はさらされないのでは?
 たかだか3つのブロックのコピペですから。
 ただ、コードの記述を少しすっきりさせたほうがいいですね。
 
 以下は、貼り付け行数、領域によっては、下のほうの空白行部分もコピペされる
 『手抜き』ですが
 空白のところが空白になるだけなので。
 
 それより現行のコード、
 
 Range("A2:K2").Select
 Range(Selection, Selection.End(xlDown)).Select
 Selection.copy
 
 たとえば A列以外でA列の行数より大きな行までデータがある部分があれば
 その部分は貼り付け対象から漏れるということはお気づきですか?
 
 Sub Sample()
 Dim mx As Long
 With Sheets("Sheet2")
 mx = .UsedRange.Cells(.UsedRange.Cells.Count).Row
 .Range("A2:K2").Resize(mx - 1).Copy Sheets("Sheet1").Range("B2")
 .Range("O2:W2").Resize(mx - 1).Copy Sheets("Sheet1").Range("M2")
 .Range("L2:N2").Resize(mx - 1).Copy Sheets("Sheet1").Range("V2")
 End With
 End Sub
 
 
 |  |