• ベストアンサー

.copy に、Rangeではなく Cells を使えませんか?

ブック間で、変数によるコピー貼付けをしたいのです Workbooks(MyFName).Worksheets("部品表").Cells(j * 17 - 11, 2).Copy_ Workbooks(MyFName2).Worksheets("PartsList").Cells(k * 39 - 37, 2) と書いて見ましたが、デバックしてしまいました。 .Activate の場合も cellsは使えませんか? どうぞ教えてください

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

  • ベストアンサー
回答No.3

ただ、RANGEで括るだけでは動きませんので Dim ws As Worksheet Dim ws2 As Worksheet Set ws = Workbooks(MyFName).Worksheets("部品表") Set ws2 = Workbooks(MyFName2).Worksheets("PartsList") ws.Range(ws.Cells(j * 17 - 11, 2), ws.Cells(j * 17 - 11, 2)).Copy _ ws2.Range(ws2.Cells(k * 39 - 37, 2), ws2.Cells(k * 39 - 37, 2)) Set ws = Nothing Set ws2 = Nothing 又は、 Workbooks(MyFName).Worksheets("部品表").Range("B" & j * 17 - 11).Copy _ Workbooks(MyFName2).Worksheets("PartsList").Range("B" & k * 39 - 37) でも動きます。 こちらの方が余り変更がなくて済みます。

dengennao
質問者

お礼

変数を確認したところ、エラー箇所がわかりました 上記のやりかた、大変勉強になりました ありがとうございました

dengennao
質問者

補足

Workbooks(MyFName).Worksheets("部品表").Range("B" & j * 17 - 11).Copy _ Workbooks(MyFName2).Worksheets("PartsList").Range("B" & k * 39 - 37) をやってみましたが、やはりだめでした…。 変数のせいなのでしょうか。 変数を見直してみます

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

CellsもRangeオブジェクトのはずですので、ご質問の指定方法で問題ないはずです。テストして見ましたが、実行できています。(Copyと‗の間はスペースありますよね?) 考えられるのは、j、kの値が悪く(例えば負の値)てセルの指定ができない場合には、ご質問のように1004のエラーが出ます。 ウォッチ式などで、その行の各変数の値やオブジェクトの内容を確認してみてください。 結合がエラーの原因になる場合もありますが(範囲をはずれてしまうとか)、手作業でもコピー、ペーストできる状況であればエラーにはならないと思います。(セル指定が1セルになっているので) (↑で値を確認できれば、これも確認できますね)

dengennao
質問者

お礼

変数の誤りでした ありがとうございました

すると、全ての回答が全文表示されます。
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

>貼付け元のセルが結合されていて、貼付け先は結合がないのですが エラーメッセージから判断すると上記のことは原因外です。 但し、逆ならエラーになります。 で、考えられることは、変数KJの値で、次の2つの場合。 (1)変数K、Jのどちらかが、0、又は両方とも 0 の場合 (2)Cells(j * 17 - 11,2)    Cells(k * 39 - 37,2) このJ*17-11、K*39-37が シートの最大行(例えばxl2000~2003では、65536)を超える ような、K,Jの値になってる場合。 このどちらかでしょう。 以上。

dengennao
質問者

お礼

ああ…、 (1)変数K、Jのどちらかが、0、又は両方とも 0 の場合 に当てはまります

すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Range(Cells(j * 17 - 11, 2)) で囲んでもだめですか?

dengennao
質問者

補足

実行時エラー'1004’アプリケーション定義またはオブジェクト定義のエラーがでました。 変数がおかしくても、このようなエラーになりますか? また、貼付け元のセルが結合されていて、貼付け先は結合がないのですが、そのようなことも原因にありますか?ありませんよね…。

すると、全ての回答が全文表示されます。

関連するQ&A