蛇足的に補足します。
複数のシートを扱うコードで、
Sheet1.Activate
Cells(1,1).....
Cells(2,1).....
Sheet2.Activate
Cells(3,1).....
Cells(4,1).....
といった形式のものは、改善の余地があるということです。
今回のようにActiveにすることを忘れたりすると致命的です。
数行のコードであればこれでわかるかもしれませんが、
少し長くなると、読んでいて、シート指定がないRangeオブジェクトが出てきたときに、
今どのシートがアクティブかということを常に考えなければならず、
可読性が低下するのです。
また、逐一シートを選択することはパフォーマンスが劣化します。
どうすればよいかと言えば、ワークシートの選択はせずに、
Sheet1.Cells(1,1).....
Sheet1.Cells(2,1).....
Sheet2.Cells(3,1).....
Sheet2.Cells(4,1).....
というような形式が望ましいのです。これならどのシートかは明瞭です。
ただし、これだとワークシートが目立ちすぎて、重要なところが目立たなくなる可能性もあるので、
(1)短いワークシート変数を使ったり、(ws1.Cells(1,1)のように)
(2)With ステートメント使ったりします。
もちろん、上記の考え方を基本的に踏襲しながらの工夫と言えます。
参考にして下さい。