前提・実現したいこと
特定のセルに絞り込みたい氏名を入力し、「検索ボタン」押下でテーブルを入力した氏名で絞り込みをかけたい。
起きている問題
氏名を入力し「検索ボタン」を押下すると画像のエラーが出る。
(シート上でオートフィルタを直接操作することはできる。)
該当のソースコード
VBA
1Sub 検索_Click() 2 Dim Target As Range ' 検索する文字列 3 4 ' 検索する文字列を取得 5 Set Target = Range(SEARCH_CELL) 6 7 If Not IsEmpty(Range(SEARCH_CELL).Value) Then 8 ActiveSheet.Protect AllowFiltering:=True 9 Range("A6").AutoFilter 2, "*" & Target & "*" 10 End If 11End Sub 12 13Sub クリア_Click() 14 ' 検索文字をクリア 15 Range(SEARCH_CELL) = "" 16 ' 氏名フィルタをクリア 17 If ActiveSheet.ListObjects(1).AutoFilter.FilterMode Then 18 ActiveSheet.ListObjects(1).AutoFilter.ShowAllData 19 End If 20End Sub
下記はシートを保護する処理です。
VBA
1'------------------------------------------------------ 2' 全シートを保護する関数 3'------------------------------------------------------ 4Function Protection() 5 Dim s As Worksheet 6 For Each s In ActiveWorkbook.Sheets 7 s.Protect AllowFiltering:=True 8 Next s 9End Function
試したこと
・検索する度にシート保護の解除を行えば処理は動く(できれば避けたい)
・直接操作でオートフィルタを絞り込み、「クリアボタン」を押下すると絞り込みは解除される。
補足情報(FW/ツールのバージョンなど)
Microsoft Excel 2019
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/12 01:26