
こんばんわ。
現在、コマンドボタン(オートフィルタの設定)にオートフィルタを設定するようなマクロを登録しています。
そして、別のコマンドボタンにはオートフィルタの解除を実施するマクロを書きたいんです。
しかし、オートフィルタを設定していない時に、解除のマクロを実行するとエラーになってしまいます。どうしたら良いのでしょうか?
If・・・文を使って、対象セルにオートフィルタが設定している時は解除を実施し、オートフィルタが設定されてない時は、何も実施しない。
このようなマクロはどうしたら良いのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
フィルタされていないシートに対して実行すると、
実行時エラー'1004':WorksheetクラスのShowAllDataメソッドが失敗しました。
というエラーが出ます(多分)
対象のシートが必ずアクティブなら、
If ActiveSheet.AutoFilterMode Then
'オートフィルタを解除
ActiveSheet.AutoFilterMode = False
End If
対象のシートがアクティブでなく、シートを指定する必要があるなら
If Worksheets("sheet1").AutoFilterMode Then
'オートフィルタを解除
Worksheets("sheet1").AutoFilterMode = False
End If
(シート名は適時変更要)
これで、どうでしょうか?
No.2
- 回答日時:
既に正解が出されましたが、せっかく打ち込んだので...
一番安直なのは、
エラーが出たら何もしないで終了させる
Sub test1()
On Error GoTo errorHandle
'ここに処理を記す
errorHandle:
End Sub
まっとうな方法は、AutoFilterModeで分岐する
Sub test2()
Dim sh As Worksheet
Set sh = ActiveSheet
If sh.AutoFilterMode = True Then
'ここに処理を記す
End If
End Sub
上記のコードをコピペしないで、打ち込んで行くと、sh.まで打ち込んだ時点で、インテリセンスという奴で、メンバーが表示されるので、どんなものがあるかご確認して、ご活用下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
【excel】リスト内の条件にあっ...
-
エクセルのオートフィルタで最...
-
オートフィルタは金額の桁カン...
-
Excel マクロ 抽出 フィルタ...
-
Excelで、ブック中すべてのシー...
-
エクセル フィルタで抽出したデ...
-
Excelのオートフィルタで非表示...
-
【Excel2003】オートフィルタの...
-
可視セルを対象としたcountifが...
-
access マクロでのフィルタの...
-
Excel共有ブックのオートフィル...
-
オートフィルタの抽出が途中で...
-
エクセル関数で、数字の入った...
-
データの抽出を教えてください
-
Excelマクロ オートフィルタ可...
-
VBA オートフィルタで抽出した...
-
エクセル2007のオートフィルタ...
-
オートフィルタで未入力(空白...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセル関数で、数字の入った...
-
エクセルの偶数行(奇数行)の抽出
-
可視セルを対象としたcountifが...
-
オートフィルタで選択したデー...
-
エクセルで、条件に一致した行...
-
オートフィルタで3つ以上の条...
-
【Excel/関数/条件付き書式】月...
-
access マクロでのフィルタの...
-
Excel共有ブックのオートフィル...
-
オートフィルタは金額の桁カン...
-
【EXCEL】条件に一致した最新デ...
-
【excel】リスト内の条件にあっ...
-
エクセルにて、フィルタをかけ...
-
関数で小数点以下を抽出したい
-
オートフィルタで未入力(空白...
-
エクセル、オートフィルタで最...
おすすめ情報