
こんにちは。
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル:マクロ「Application...
-
Excel 行の連続データを列に参...
-
エクセルで隣接していない複数...
-
エクセルで、選択範囲の数値全...
-
エクセル コピーしたデータを1...
-
Excelでのコピーしないセルの挿...
-
Excelに、ダブルクォーテーショ...
-
EXCELのオートフィルの設定を変...
-
メールソフト「サンダーバード...
-
エクセルの2ページ目の作り方
-
【Excel】 オートフィルのデフ...
-
Excel 結合されたセルへの貼り...
-
行列を入れ替えるができません...
-
エクセルで勝手に「折り返して...
-
エクセルオートフィルで書式を...
-
Excel 他のファイルからシート...
-
Excel VBA 以下のメッセージが...
-
エクセルに入力した文字列に句...
-
前月の統計表の計算式を残した...
-
エクセルで「コピーしたセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで隣接していない複数...
-
エクセルで勝手に「折り返して...
-
メールソフト「サンダーバード...
-
Excel 行の連続データを列に参...
-
エクセルの2ページ目の作り方
-
Excelに、ダブルクォーテーショ...
-
エクセル 別シートへのコピー...
-
エクセルで、選択範囲の数値全...
-
エクセルで値だけコピーして背...
-
「選択範囲を解除してアクティ...
-
MacBookのnumbersでの表作成に...
-
エクセルでの行数・列数を指定...
-
エクセルで「コピーしたセルの...
-
エクセル コピーしたデータを1...
-
Excelでコピーした行の挿入を繰...
-
エクセルオートフィルで書式を...
-
【Excel】複数セルにまたがる文...
-
エクセル・数値が変化したらカ...
おすすめ情報