こんにちは。
Excel VBAの初心者です。
セルコピーについて教えてください。
シート1のセル範囲e4~aj4を、シート2の同じ場所に、そのままコピーします。
Worksheets(1).Range("e4:aj4").Copy Destination:=Worksheets(2).Range("e4:aj4")
上記だと普通に通るのですが、コピー元の行に変数を使用したくて、その前に一度下のように書き換えました。
Worksheets(1).Range(Cells(4, 5), Cells(4, 36)).Copy Destination:=Worksheets(2).Range(Cells(4, 5), Cells(4, 36))
するとエラー1004(アプリケーション定義またはオブジェク定義のエラー1004(アプリケーション定義またはオブジェク定義のエラー)が出て、通らなくなります。
単純なことだと思うのですが、初心者ゆえ困っております。
どなたかご教示いただけますと幸いです。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
コピー先の左上隅のセル(1セルだけ)指定するのがよい。
Destinationの書き方の問題。Sub test02()
Worksheets(1).Range(Cells(4, 1), Cells(4, 4)).Copy Destination:=Worksheets(2).Cells(4, 5)
End Sub
ーー
本件には関係ないかと思うがRange(Cells()、Cells))では、左上隅、右下隅のセルを、シートまで具体的に指定するようにしないとエラーが出る場合がある。コピ元とコピー先で2つのシートにまたがっている場合など注意。
ーー
こんな記事もあるよ。参考。
http://officetanaka.net/excel/vba/cell/cell09.htm
ありがとうございます。
URLも参考にさせていただきます。
実は皆様に教えていただいたとおり修正した上で、更にコピー元・先のシート指定をしても通らず、頭を抱えていたのですが、『Range(Cells(),Cells())のコピーはシート指定をしないと駄目な場合あり』というアドバイスをヒントに、コピー元シートをactivateしたところ、無事通りました!
Range()のときは、activateなしでそのまま普通に通っていたので、このアドバイスがなかったら全く辿りつかなかったと思います。
今回はこちをベストにさせていただきました。
助かりました!
No.2
- 回答日時:
Copyメソッドは、コピー&ペースト操作と同様ですから、代入とは違いペースト先でよいので次ようなコードになります。
Worksheets(1).Range("E4:AJ4").Copy Worksheets(2).Range("E4")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 送付元、送付先が同じ大きさの複合セルのコピーがVBAで、できません。 1 2023/06/01 20:51
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 【VBA】ボタンに登録したマクロがエラーになる 4 2022/07/25 17:47
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルのアポストロフィを一...
-
EXCELのオートフィルの設定を変...
-
Excelで、横並べのデータを縦並...
-
エクセルオートフィルで書式を...
-
Excelでコピーした行の挿入を繰...
-
エクセルで勝手に「折り返して...
-
エクセル・数値が変化したらカ...
-
Excel)軽いデーターのはずなの...
-
行数の違う表に複数行をコピーする
-
Excel 行の連続データを列に参...
-
エクセルで、選択範囲の数値全...
-
エクセル 別シートへのコピー...
-
エクセルで「コピーしたセルの...
-
【エクセル】行の高さを規則的...
-
EXCELシートをPowerPointにきれ...
-
Excelに、ダブルクォーテーショ...
-
エクセルでの行数・列数を指定...
-
エクセル コピーしたデータを1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルのアポストロフィを一...
-
Excel 行の連続データを列に参...
-
エクセルで、選択範囲の数値全...
-
エクセルで勝手に「折り返して...
-
Excelでコピーした行の挿入を繰...
-
EXCELシートをPowerPointにきれ...
-
EXCELのオートフィルの設定を変...
-
エクセルでの行数・列数を指定...
-
エクセルのコピペでクリップボ...
-
Excelに、ダブルクォーテーショ...
-
エクセル 別シートへのコピー...
-
メールソフト「サンダーバード...
-
「選択範囲を解除してアクティ...
-
EXELで複数のとびとびのセルを...
-
エクセルで値だけコピーして背...
-
Excel)軽いデーターのはずなの...
-
エクセル・数値が変化したらカ...
-
Excelで、横並べのデータを縦並...
おすすめ情報