前提・実現したいこと
シートの内容をまるごとコピーし、別のブックを新規作成して、コピーした内容を張り付けて保存するエクセルVBAを作っています。
配列の第一要素目である、block3.xlsxは作成できるのですが、
次のblock4は、
Worksheets(Data(i)).Copy
の部分で、下記のエラーが発生してしまい、block4.xlsxの作成はできません。
どうしたら、問題なくループが回り、
block3~block7.xlsx、全てのブックを作成できるようになるでしょうか?
発生している問題・エラーメッセージ
インデックスが有効範囲ではありません。
該当のソースコード
VBA
1Sub correctに向けたコピーtest() 2 Dim fso As FileSystemObject 3 Set fso = New FileSystemObject 4 5 Dim Data(4) 6 7 Data(1) = "block3" 8 Data(2) = "block4" 9 Data(3) = "block6" 10 Data(4) = "block7" 11 12 Dim i As Integer 13 For i = 1 To 4 14 MsgBox i 15 MsgBox Data(i) 16 Worksheets(Data(i)).Copy 17 Name = "\" & Data(i) & ".xlsx" 18 'ppath = ThisWorkbook.Path 19 ppath = "C:\Users\×××\OneDrive\ドキュメント\大学院\修士論文\facial expression\実験データ0605\0618\3" 20 MsgBox ppath 21 a = fso.BuildPath(ppath, Name) 22 ActiveWorkbook.SaveAs Filename:=a 23 Next 24 25End Sub
試したこと
ループ2回目の、Data(i)には、きちんとblock4が入っています。
Worksheets(Data(i)).Copyの、書き方が何かしら間違っているのだと思いますが、
どこが違うのかが分かりません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/24 08:29