|
こんにちは。かみちゃん です。
>>入力後に以下のコードを実行すると、
>>その時点のアクティブシートのC列の値が入っている最終行のC列〜G列をコピーして
>>「一覧」シートのA列の値が入っている最終行の次の行に貼り付けします。
>>したいことはそういうことではないのでしょうか?
>
>↑おっしゃる通りです。
であれば、
Sub 転記()
Cells(Rows.Count, "C").End(xlUp).Resize(, 5).Copy _
Sheets("一覧").Cells(Rows.Count, 1).End(xlUp).Offset(1)
End Sub
だけです。
Sub 支店別シート統合()
End Sub
の中に組み込むものではありませんし、このようなコードは使いません。
このコードを使う必要性は何でしょうか?
各シートの全データをひとまとめにするコードですから、別物です。
>★の行がエラーになりました。
どのようなエラーメッセージでしょうか?
エラーメッセージも正確に書くようにしましょう。
以下の◆の行を追加すると、項目行しかないもしくは、項目行もないシート
は、処理されません
If Selection.Rows.Count > 1 Then '◆
Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Sheets("一覧").Cells(Rows.Count, 1).End(xlUp).Offset(1)
End If '◆
>また、修正方法は下段に張り付けるだけでよかったのでしょうか。
修正方法というか、マクロの機能が別物ですので、
全シートの全データを転記するのか、
アクティブシートの最終行を1行だけ転記するのか
という処理方法によって使い分けする必要があります。
なお、記述位置は、そこでいいです。
>>空欄セルがあるとエラーになる。
>
>と書きましたが、正確には
>・データのないシートがあると★行がエラーになる。
>・空白行があると、空白行以下のデータは一覧シートに記載されない。
>でした。
これは、全データ転記の場合かと思いますが、
CurrentRegionで取得されるセル範囲の特性は確認されていますか?
まずは、ヘルプで確認してみてください。
途中の1行全体が空白になっているシートがあるならば、CurrentRegionで取得される
範囲は、期待しているものと違う場合があります。
その場合は、どのような範囲を期待しているのか、説明してください。
たとえば、C列に値が入っている最終行までの範囲とか。
|
|