• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA セルコピーのエラー)

VBAセルコピーのエラー

このQ&Aのポイント
  • Excel VBA初心者がセルコピーのエラーについて質問しています。
  • セル範囲をコピーする際に変数を使用しているため、エラーが発生しています。
  • 困っている初心者が助けを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答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

happytitti
質問者

お礼

ありがとうございます。 URLも参考にさせていただきます。 実は皆様に教えていただいたとおり修正した上で、更にコピー元・先のシート指定をしても通らず、頭を抱えていたのですが、『Range(Cells(),Cells())のコピーはシート指定をしないと駄目な場合あり』というアドバイスをヒントに、コピー元シートをactivateしたところ、無事通りました! Range()のときは、activateなしでそのまま普通に通っていたので、このアドバイスがなかったら全く辿りつかなかったと思います。 今回はこちをベストにさせていただきました。 助かりました!

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

Copyメソッドは、コピー&ペースト操作と同様ですから、代入とは違いペースト先でよいので次ようなコードになります。 Worksheets(1).Range("E4:AJ4").Copy Worksheets(2).Range("E4")

happytitti
質問者

お礼

ありがとうございます。 参考にさせていただきました。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

Worksheets(1).Range(Cells(4, 5), Cells(4, 36)).Copy Destination:=Worksheets(3).Cells(4, 5) これで良いと思います。

happytitti
質問者

お礼

いち早くありがとうございます。 大変参考になりました。

関連するQ&A

専門家に質問してみよう