dポイントプレゼントキャンペーン実施中!

お世話になっております。
マクロを使って複数のセルを選択してコピーし、別のブックにあるシートへ
貼り付けたいのですが上手くいきません。
 Range(Selection, Selection.End(xlToRight)).Select
  Selection.Copy
上記のようにコピーしたいセルの入っている行全体の貼り付けは出来たのですが、必要なデータのセルのみ(隣り合っていない)を選択して
貼り付けようとすると何もコピーされていない状態で終了してしまいます。
(変数に代入してコピー等・・・)
どなたか教えて下さい。

A 回答 (3件)

#2です。


レスが遅くなりました。
私の環境(Excel2000)では

"Worksheet(X)" → "Worksheets(X)"

の表記を直しただけで普通に動きましたよ。
エラー処理とか入れてるなら、構文エラーでプロシージャを抜けてるだけでは無いですか?
    • good
    • 0
この回答へのお礼

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

>"Worksheet(X)" → "Worksheets(X)"
始めから確認してみました。指定したセルへも行かなかったのは↑が間違いでした。(すみません・・)
あと、変数への代入がきちんと出来ていないのもありました。(自分では大丈夫なつもりでしたが)
コードに間違いはなかったようなのでOffsetはやめて以前に回答いただいた
コードを参考に下記のコードで実行したら出来ました。

ThisWorkbook.Sheets("2006").Activate
AA = ActiveCell.Address
Acell = Range(AA).Row
Set r = Union(Cells(Acell, 2), Cells(Acell, 4), Cells(Acell, 5))
r.Copy Destination:=Workbooks("2007.xls").Worksheets(X).Range("B1")

まだまだこの続きでマクロを作成していくので以後気をつけたいと思います。
ありがとうございました。

お礼日時:2007/04/04 19:48

上手くいかないコードを載せないと、コードが悪いのか、そもそも無理な事をしたいのかも判断出来ませんよ。


ちなみに下記は Sheet1 の セル A1,C1,E1,G1,I1 をSheet2のA1:E1 にコピーします。

Sub Test()
Dim r As Range, i As integer
 With Worksheets("Sheet1")
  Set r = .Cells(1, 1)
    For i = 3 To 9 Step 2
      Set r = Union(r, .Cells(1, i))
    Next i
 End With
 r.Copy Destination:=Worksheets("Sheet2").Range("A1")
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
無理かどうかよりもまずコードがおかしいとは思うのですが・・載せてみます。

ThisWorkbook.Sheets("2006").Activate
 Set rngC = Application.Union(ActiveCell, ActiveCell.Offset(, 2), ActiveCell.Offset(, 3))
rngC.Copy Destination:=Workbooks("2007.xls").Worksheet(X).Range("A1")

貼付け先のWorksheet(X)は変数です。2つのブックはすでに開いている状態です。
下記のコードだと2007のブックにデータの入っている行全体がコピーされるのですが、上記のコードだと指定したセルへも行きません。。
教えて頂いたコードを参考に始めから作り直してみます。ありがとうございました。

ThisWorkbook.Sheets("2006").Activate
 Range(Selection, Selection.End(xlToRight)).Select
  Selection.Copy
   Workbooks("2007.xls").Activate
   Range("A1").Select
 ActiveSheet.Paste

お礼日時:2007/04/01 18:21

>(隣り合っていない)を選択して


の操作は、VBAでなくても 出来ないのでは?。
確認してください。

VBA以外(通常の操作)で、出来ないことは、VBAでもできないのです。 
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
別々のブック間で複数セルのコピーというのは無理なんでしょうか・・??
すみません。VBA初心者なのでわからないことだらけです。
Range(Selection, Selection.End(xlToRight)).Select
を変数に代入して.renge(変数,2)というふうに指定してみたり色々としてみるのですが、ますます動かなくなってしまいました(^^;)
とりあえず勉強のつもりでもう少し調べてみます。ありがとうございました。

お礼日時:2007/04/01 18:36

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