みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel2007 コピペエラー

以下を実行すると、「そのコマンドは複数の選択範囲に対して実行できません」エラーがでます。

Workbooks("Test1").Sheets("Sheet1").Range((.Cells(1, 1), .Cells(100, 20)).Copy
Workbooks("Test2").Sheets("Sheet2").Activate
Workbooks("Test2").Sheets("Sheet2").Cells(1, 1).Select
ActiveSheet.Paste

どなたか原因を教えて下さい。

投稿日時 - 2011-03-22 09:43:41

QNo.6611431

すぐに回答ほしいです

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

Sub test01()
With Workbooks("Book1").Sheets("Sheet2")
.Activate
.Range(.Cells(1, 1), .Cells(100, 20)).Copy
Workbooks("Book2.xls").Sheets("Sheet1").Activate
Workbooks("Book2.xls").Sheets("Sheet1").Cells(1, 1).Select
ActiveSheet.Paste
End With
End Sub
で動きました。
私のテストの場合、Book1は保存前のブック。
既にBook2.xlsはあります。
それを実行するまでに、手動で開いておきました。<==これが必要なのでは(VBAで開いてよいと思うが)
先行の質問に出てない部分に、これ(ファイルを開くコードや状態)がありますか。

投稿日時 - 2011-03-22 11:26:51

お礼

imogasiさん:
ありがとうございます。

2つのファイルともこの前の処理で開いています。
また、一度全てのファイル(VBAを実行するファイル含め)を閉じてから、再度同じ処理をすると
コピペできました。
がしかし、お客様のところではファイルを閉じて開きなおしても、やはりエラーになるようです。
動きがとても不安定なのと、原因が全くわかりません。
よく、複数セルを選択したときにこのエラーが起きるようですが、私のVBAの場合は、広範囲ですが、
1つの範囲です。
何が原因なのでしょうか?

投稿日時 - 2011-03-22 11:46:59

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Workbooks("Test1").Sheets("Sheet1").Activate
Range(Cells(1, 1), Cells(100, 20)).Copy
Workbooks("Test2").Sheets("Sheet2").Activate
Cells(1, 1).Select
ActiveSheet.Paste

とりあえずこれでエラーはなくなるはずです

Workbooks("Test1").Sheets("Sheet1").Range((.Cells(1, 1), .Cells(100, 20)).Copy

これって括弧の数がおかしいですよね?
.Cells
ドットが付いてるのも?

投稿日時 - 2011-03-22 10:24:22

お礼

web2525さん:
ご回答ありがとうございます。
カッコやドットがついているのは、実際には以下のようになっているためです。
(ちょっと急いで質問メールしてので、すいません)
でも、やっぱり同じエラーになるのですが。。。どうしてでしょうか?

With Workbooks(pMyAplName).Sheets("xxxマスタ")
.Activate
.Range(.Cells(1, 1), .Cells(100, 20)).Copy
Workbooks(pNewFileName).Sheets(strStName).Activate
Workbooks(pNewFileName).Sheets(strStName).Cells(1, 1).Select
ActiveSheet.Paste

End With

投稿日時 - 2011-03-22 10:37:40

あなたにオススメの質問