- ベストアンサー
VBAで別のシートに貼り付ける方法がわかりません
- VBAを使って、今開いているファイルの特定のシートからデスクトップにある別のファイルの特定のシートにデータを貼り付けたいですが、うまくできません。
- 「インデックスが有効範囲にありません。」というエラーメッセージが表示されています。どこが間違っているのか教えてください。
- 使っているVBAのコードは、特定の範囲のデータをコピーして、別のファイルの特定のシートに貼り付けるものです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マクロをシートモジュールに登録すると、シートを指定しないセルはそのシートのセル、標準モジュールでは、シートを指定しないセルはアクティブシートのセルになることをご理解下さい。 よって、Range(Cells(15, 2), Cells(15,2)).Select のコードは「依頼シート」、アクティブになっている提出.xlsにこのシートが存在しないのでエラーになったものと思います。 sub 取り込み( ) Range(Cells(15, 2), Cells(30, 21)).Copy Workbooks.Open Filename:="C:\Documents and Settings\Administrator\デスクトップ\作業中\提出.xls" Sheets("データ更新").Cells(15, 2).Select ActiveSheet.Paste Application.CutCopyMode = False End sub
その他の回答 (2)
- TAKA_R
- ベストアンサー率32% (26/79)
sub 取り込み( ) Workbooks.Open Filename:="C:\Documents and Settings\Administrator\デスクトップ \作業中\提出.xls" workbooks("依頼").Sheets("依頼").Range(Cells(15, 2), Cells(30, 21)).Copy workbooks("提出.xls").Sheets("データ更新").Cells(15, 2) Application.CutCopyMode = False End sub だとすっきり??
お礼
このようなシンプルな記述でできるとは思いませんでした。 試しにやってみます。 どうもありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
>今開いているファイル(A)内のシート(依頼)にVBAを以下の用に記述しました。 たぶん、これが間違っています。 手順: 1.今のマクロは全部消す 2.AブックでALT+F11を押す 3.VBE画面で挿入メニューから標準モジュールを挿入する 4.ご相談のその通りのマクロを記入する(別に手直しは必要はありません) 5.ファイルメニューから終了してエクセルに戻り、マクロを実行する。
お礼
標準モジュールとか、thisbookなどの違いを理解しないまま、マクロを使用していました。 アドバイス通り行いましたら出来ました。 どうもありがとうございました。
お礼
具体的に教えていただき、モヤモヤがなくなりすっきりしました。 自力で基礎を理解していないまま、マクロを組んでいたので分かりませんでした。 やはり基礎が大事だと思いました。 どうもありがとうございました。