VBAでフォルダ指定し、ファイルとシートを巡回してフィルタが掛かっていたら解除したいです。
調べながら作成しましたが、シートが巡回できていないようです。
どこかおかしな点がありますでしょうか?
VBA
1Sub FilterClear() 2 Dim buf As String 3 Dim xlsxFile As String 4 Dim newWbName As String 5 Dim tmpSheet As Object 6 7' 指定したディレクトリ内にあるxlsxファイルをすべて列挙 8 With Application.FileDialog(msoFileDialogFolderPicker) 9 If .Show = True Then 10 buf = .SelectedItems(1) 11 xlsxFile = Dir(buf & "*.xlsx") 12 End If 13 End With 14 15' xlsxファイルの数だけループ 16 Do While xlsxFile <> "" 17 18 ' xlsxファイルを開く 19 Workbooks.Open buf & "\" & xlsxFile, UpdateLinks:=False 20 21 ' ブック内のシートの数だけループ 22 For Each tmpSheet In Workbooks(xlsxFile).Sheets 23 'フィルターがあれば解除、なければなにもしない 24 25 If tmpSheet.AutoFilterMode = True Then 26 Dim MaxRow As Long 27 MaxRow = Cells(Rows.Count, 1).End(xlUp).Row 28 Range(Cells(1, 1), Cells(MaxRow, 50)).AutoFilter 29 End If 30 31 Next tmpSheet 32 33 ' xlsxファイルを閉じる 34 Workbooks(xlsxFile).Close SaveChanges:=True 35 36 ' 次のxlsxファイルに移る 37 xlsxFile = Dir() 38 Loop 39End Sub 40
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/12 10:41