前提・実現したいこと
ファイル名、シート名、データ量が作業毎に変わるエクセルファイルをツールの入っているエクセルシートに取り込みたい。
ファイル名とシート名は年度が入っているので毎年変わることは確定しています。
発生している問題・エラーメッセージ
シートをそのままVer1Bookにコピーしたいのですが、コピーした段階でエラーが発生してしまい動かなくなります。
シートの指定やブックの指定など変更して試していますがうまく動きません
実行時エラー”9” インデックスが有効範囲にありません。
該当のソースコード
VBA
1 2 3Sub データ取り込み2() 4 5 6 Application.DisplayAlerts = False ' メッセージを非表示 7 8 'Sheets2のデータを削除する 9 'Sheets(2).Delete 10 11 Dim OpenFileName As String, FileName As String 12 OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx") 13 If OpenFileName <> "False" Then 14 Workbooks.Open OpenFileName 15 16 17 '取り込むエクセルシートを開く 18 Workbooks("Microsoft Excelブック,*.xlsx").Sheets(1).Select.Copy _ 19 After:=Workbooks("Ver1.xlsm").Sheets(2) 20 21 FileName = Dir(OpenFileName) 22 23 Workbooks(FileName).Close 24 25 Sheets(1).Activate 26 27 Else 28 MsgBox "データ取り込みがキャンセルされました" 29 30 End If 31 32End Sub 33 34
試したこと
’Workbooks.Open OpenFileName ’非表示に変更
Workbooks(OpenFileName).Sheets(1).Select.Copy _
After:=Workbooks("Ver1.xlsm").Sheets(2)
Workbooks("OpenFileName").Sheets(1).Select.Copy _
After:=Workbooks("Ver1.xlsm").Sheets(2)
Workbooks("Microsoft Excelブック,*.xlsx").Sheets(1).Select.Copy _
After:=Workbooks("Ver1.xlsm").Sheets(2)
と指定のブック名がいけないのかと繰り返していますがどれも有効範囲エラーが出ます。
補足情報(FW/ツールのバージョンなど)
Excel2013
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。