| 
    
     |  | ▼タケル さん: 
 こんばんは
 
 アップされたサンプルデータも、まだ見ていませんし、コードも、ざらっと眺めただけですが、
 ループ構文の書き方としては、大いに改善すべき点はあるとして、
 
 まず、ほんとうに『型が違います』というエラーでしたか?
 1004 で、『不適切です』といったエラーではなかったですか?
 
 >   Sheets(1).Range(Cells(i, "D"), Cells(i + Y - 1, "D")).Copy Sheets(2).Range(Cells(m, 4), Cells(m, 4 + Y))←「型が違います」と表示され処理ができない.
 
 これはSheets(1)のD列の『縦』の領域を、Sheets(2)のD○から右の『横』の領域にコピペしようとしていますね。
 
 コピーの後のペースト操作で行列を入れ替えというのがありますね。
 それをシートの上で実行して、それをマクロ記録してみてください。
 PasteSpecial で Transposeが指定されたコードが生成されるはずです。
 
 それと、なぜ
 
 Application.DisplayAlerts = False
 
 が、あるのでしょう?
 ざっと見る限り、これが必要なコード実行は見あたりませんが?
 
 |  |