- ベストアンサー
異なるブック間でのセル範囲のコピー/VBA
異なるブック間でクリップボードを経由せず直接コピーしたいため 下記のマクロを記述していますが、実行エラーが発生します。 どうしてでしょうか。 ThisWorkbook.Worksheets(3).Range(Cells(3, 1), Cells(3 + a, 1)).Value = Workbooks("excel.xls").Worksheets(1).Range(Cells(11, 3), Cells(11 + a, 3)).Value (補足) (1)VBA実行中のThisWorkbook、excel.xlsは別のブック ですが、同じフォルダにあります。 (2)aは数値が入る変数です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Cells(3, 1)や他のCellsが参照エラーになるためです。 ブックとワークシートを特定できないためエラーになってしまいます。 正しくは ThisWorkbook.Worksheets(3).Range(ThisWorkbook.Worksheets(3).Cells(3, 1), _ ThisWorkbook.Worksheets(3).Cells(3 + a, 1)).Value _ = Workbooks("excel.xls").Worksheets(1).Range(Workbooks("excel.xls").Worksheets(1).Cells(11, 3), _ Workbooks("excel.xls").Worksheets(1).Cells(11 + a, 3)).Value
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
"excel.xls"を開いていますか? >同じフォルダにあります。 という記述からすると、もしかして開かずに処理しようとしている?それは無理です。
お礼
ご回答ありがとうございます。 エクセルの「excle.xls」は開いてから処理しています。
お礼
実行エラーがなくなりました! 各Cellsのブックとシートを指定しないといけなかったのですね。 貼り付けるだけの簡単な処理なので、すぐ解決できるエラーだと思っていましたが、簡単なようで難しかったです。 ありがとうございましたm(_ _)m