準・究極の選択

下記のようにコピペをしたいのですが
ActiveSheet.Paste
Sheets("sheets1").Range("V3").Copy
Worksheets("sheets2").Activate
Sheets("sheets2").Range "A1").Select
上の方法だと良く行くのですが下記だとSheets("sheets1").Cells(9,16).Copyエラーになってしまします。どうしてもCells(9,16) を使いたいのですが方法を教えてください。
ActiveSheet.Paste
Sheets("sheets1").cells(9,16).Copy
Worksheets("sheets2").Activate
Sheets("sheets2").Range "A1").Select
よろしくお願いします。

A 回答 (1件)

Sheets("sheets1").Cells(9,16).Copy


上記コードの構文は間違っていないと思います。
エラーの内容はどうなっていますか?
「実行時エラー9:インデックスが有効範囲にありません。」
ということでしたら、シート(sheets1)が見つからない、ということです。
シート名が間違っていたりしませんか?

それと順序として、CopyしてからPasteですから
ActiveSheet.Paste
の位置がおかしいです。
下記のように(シート名の正誤は別にして)なります。

Sheets("sheets1").cells(9,16).Copy
Worksheets("sheets2").Activate
Sheets("sheets2").Range("A1").Select
ActiveSheet.Paste

Application.CutCopyMode = False
↑コピーモードを解除しておきましょう。

参考までに
Sheets("sheets1").cells(9,16).Copy Sheets("sheets2").Range("A1")
というように1行に纏める事ができます。
ActivateとかSelectする必要はありません。
Application.CutCopyMode = False
も必要ありません。
    • good
    • 0
この回答へのお礼

前後の構文が違ってたようです。参考でいただいた文Sheets("sheets1").cells(9,16).Copy Sheets("sheets2").Range("A1")で組みなおしましたらうまくいきました。これが出来ない為に長々とIF文を並べていましたがこれですっきり、しかもかなり短くなりました。
また勉強にもなりありがとうございました。

お礼日時:2009/03/03 10:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!