• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAにて別シートに貼り付けたいのでができません)

VBAで別のシートに貼り付ける方法がわかりません

このQ&Aのポイント
  • VBAを使って、今開いているファイルの特定のシートからデスクトップにある別のファイルの特定のシートにデータを貼り付けたいですが、うまくできません。
  • 「インデックスが有効範囲にありません。」というエラーメッセージが表示されています。どこが間違っているのか教えてください。
  • 使っているVBAのコードは、特定の範囲のデータをコピーして、別のファイルの特定のシートに貼り付けるものです。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.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

urbt86703
質問者

お礼

具体的に教えていただき、モヤモヤがなくなりすっきりしました。 自力で基礎を理解していないまま、マクロを組んでいたので分かりませんでした。 やはり基礎が大事だと思いました。 どうもありがとうございました。

その他の回答 (2)

  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.2

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 だとすっきり??

urbt86703
質問者

お礼

このようなシンプルな記述でできるとは思いませんでした。 試しにやってみます。 どうもありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>今開いているファイル(A)内のシート(依頼)にVBAを以下の用に記述しました。 たぶん、これが間違っています。 手順: 1.今のマクロは全部消す 2.AブックでALT+F11を押す 3.VBE画面で挿入メニューから標準モジュールを挿入する 4.ご相談のその通りのマクロを記入する(別に手直しは必要はありません) 5.ファイルメニューから終了してエクセルに戻り、マクロを実行する。

urbt86703
質問者

お礼

標準モジュールとか、thisbookなどの違いを理解しないまま、マクロを使用していました。 アドバイス通り行いましたら出来ました。 どうもありがとうございました。

関連するQ&A