前提・実現したいこと
block3_correct.xlsx~block7_correct.xlsx、4つのブックについて、
シートの値をフィルタリングし、フィルタされた行を削除する操作を行おうとしています。
ループで各ブックにつき処理を行うにあたり、
各ブックをアクティブにする必要があると思うのですが、
Workbooks(Data(i)).Activate
で、エラーになってしまいます。
どうしたら、問題なくループが回せるようになるでしょうか?
発生している問題・エラーメッセージ
インデックスが有効範囲にありません。
該当のソースコード
VBA
1Sub 正解データ() 2 3 'カレントディレクトリを確認 4 MsgBox "変更前のパス:" & CurDir 5 ChDir "C:\Users\×××\OneDrive\ドキュメント\大学院\修士論文\facial expression\実験データ0605\0618\3" 6 '変更後のパス確認 7 MsgBox "変更後のパス:" & CurDir 8 9 Dim Data(1 To 4) 10 11 Data(1) = "block3_correct.xlsx" 12 Data(2) = "block4_correct.xlsx" 13 Data(3) = "block6_correct.xlsx" 14 Data(4) = "block7_correct.xlsx" 15 16 Dim i As Integer 17 For i = 1 To 4 18 MsgBox Data(i) 19 Workbooks(Data(i)).Activate 20 '行抽出 21 ActiveWorkbook.ActiveSheet.UsedRange.AutoFilter _ 22 Field:=1, _ 23 Criteria1:=False 24 '行削除 25 With ActiveWorkbook.ActiveSheet.Range("A1").CurrentRegion.Offset(1, 0).EntireRow.Delete 26 End With 27 'オートフィルタ解除 28 ActiveWorkbook.ActiveSheet.Range("A1").AutoFilter 29 Next 30End Sub
試したこと
Data(i)には値はちゃんと入っているのですが、
Workbooks(Data(i)).Activateが動きません。
ブックの指定がうまくできていないということなのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/24 13:42
2021/06/24 14:22 編集
2021/06/24 14:32