エクセル2000のVBAについて教えてください。
アクティブブックのシートbの後ろに、Aブックのaシートをコピーするやり方ですが
自分なりに作ったのですがインデックスエラーがでてしまいます。
どこが間違っているのでしょうか?
ちなみにアドレスは間違いありません。
Workbooks("C:\Documents and Settings\admin\MyDocuments\A").Worksheets
("a").Copy after:=ActiveWorkbook.Worksheets("b")
答え:
コピー元のブックの指定方法が間違っているようです
Workbooksの引数には フルパスではなく ブック名のみでいいと思います
また コピー元のブックは同じエクセル内で開いている必要があります
一度に全部やろうとしないで やりたいことを分割してみましょう
今回の場合なら
Workbooks.Open メソッドを使うと ActiviWorkbookが換わってしますのでその対策をしないといけません
そのために プロシージャの先頭部分コピー先の確保を行います
Dim mySheet as Worksheet
Set mySheet = ActiveWorkbook.Worksheets("b")
'"A"というブックを取得
dim wb as Workbook
on error resume next
set wb = Workbooks("A")
On Error goto 0
'失敗なら "A"というブックを開く
if wb is nothing then
set wb = WOrkbooks.Open("C:\Documents and Settings\admin\MyDocuments\A")
end if
'ブックAの シートaを 現在のブックの シートbの後ろにコピー
wb.Worksheets("a").Copy after:=mySheet
'といった手順でしょう
補足の質問:
本当に助かりました。ありがとうございました。この質問・回答は役に立ちましたか?
ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.