アプリ版:「スタンプのみでお礼する」機能のリリースについて

列のコピー&ペーストができません。

i, j は変数で、Integerで定義しており、省略はしていますが、期待通りの値がi, j には代入されています。

Sheet1のi列からj列をコピーし、Sheet2のC列(これは固定)に貼り付けたいのですが、うまくいきません。

私の書いたコードは下記の通り。 下記は改行されていますが、実際のVBAでは1行で書かれています。

Worksheets("Sheet1").Range(Columns(i), Columns(j)).Copy Worksheets("Sheet2").Range(Columns("C"))

貼り付け先(Destination)の記述がいけないのでしょうか?
行き詰っておりますので、どなたかお助けください!

A 回答 (6件)

Worksheets("Sheet1").Range(Columns(i), Columns(j)).Copy Destination:= _


Worksheets("Sheet2").Columns("C")
としてみてはどうでしょうか。
    • good
    • 0
この回答へのお礼

私の書いたコードと同じく、

アプリケーション定義またはオブジェクト定義のエラーです。

と出てしまいました。

早速のご回答、ご回答ありがとうございます。

お礼日時:2012/08/28 16:03

いけないのかどうかは分かりませんが、


range(columns("c"))を range(columns("c:c")) または range(columns(3)) はたまた range("c1")
にするとうまくいくかと思います。
    • good
    • 0
この回答へのお礼

やはり、私の書いたコードと同じエラーが出てしまいました。

候補をたくさん教えていただき、ありがとうございました。

お礼日時:2012/08/28 16:05

たびたび、すいません。


ひょっとしてコピー貼り付け先のシートがactivateされていませんか?
コピー元のシートがactivate状態で実行したら、同じようなエラーが出てたので・・・。
    • good
    • 2
この回答へのお礼

回答ありがとうございます!

Copyの直前に
ActiveSheet.Name にて、アクティブシート名を取得してみたところ、

Sheet2と出ました。ちなみにこのコードは、シート1のコマンドボタンにて動くようになっています。

Copyの前にWorksheets("Sheet1").Activate としても、同様のエラーです。。。

お礼日時:2012/08/29 15:57

Range(Worksheets("Sheet1").Columns(i), Worksheets("Sheet1").Columns(j)).Copy Destination:= _


Worksheets("Sheet2").Columns("C")
ではどうでしょうか。
    • good
    • 1
この回答へのお礼

お礼が遅くなって申し訳ございません。

わたくしが、シート1にコマンドボタンがある、と書きましたが、コマンドボタンはシート2でした。
シート1にコマンドボタンを移したところ、上手くいきました!

どうもありがとうございました!

お礼日時:2012/09/03 15:51

no.4さんのでシート1がactivateされていなくても、コピーできると思います。



シート1のコマンドボタンだから・・・と言っても、
よそのシートを開いたり
よそのシートに書き込んだり、
ほかのブックを開いてみたり、
何かするとよそのシートがactivateされてしまいます。
    • good
    • 1
この回答へのお礼

お礼が遅れて申し訳ございません。

おっしゃる通りでした!Activateをしなくても上手くいきましたし、もちろんActivateしても同じ結果です。

どうもありがとうございました。

お礼日時:2012/09/03 15:54

横から失礼致します。



回答No.2の最後と回答No3のお礼の組み合わせでいかがでしょうか。

Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range(Columns(i), Columns(j)).Copy Worksheets("Sheet2").Range("C1")

です。

Excel2003と2007で検証しました。
    • good
    • 1
この回答へのお礼

お礼が遅れて申し訳ございません!

検証までしていただき、身に余る光栄でございます。

教えていただいた方法でも上手くいきました。ありがとうございます。

しかし、どのやり方でもSheet2にコードを書くとうまくいきませんでした。

まあ、これはそんなに大きな問題ではありませんので、良しとします。

どうもありがとうございました!

お礼日時:2012/09/03 15:56

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