
こんばんわ。
現在、コマンドボタン(オートフィルタの設定)にオートフィルタを設定するようなマクロを登録しています。
そして、別のコマンドボタンにはオートフィルタの解除を実施するマクロを書きたいんです。
しかし、オートフィルタを設定していない時に、解除のマクロを実行するとエラーになってしまいます。どうしたら良いのでしょうか?
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ランキング
-
エクセルでオートフィルタのボ...
-
Excelで、ブック中すべてのシー...
-
Excelのオートフィルタで非表示...
-
エクセルのオートフィルタで最...
-
エクセルで時刻(8:00~20:00)...
-
Excel2003 オートフィルタで「...
-
Excel 日付・時刻データの抽出
-
Excelのフィルターで抽出した状...
-
エクセルの偶数行(奇数行)の抽出
-
エクセルで、条件に一致した行...
-
オートフィルタは金額の桁カン...
-
可視セルを対象としたcountifが...
-
Excelで文字を入力と自動的にフ...
-
なぜShowAllDataだとうまく行か...
-
オートフィルタで表示されるリ...
-
Excel時間データの抽出
-
(EXCEL)オートフィルタで折りた...
-
エクセルのマクロ(検索)
-
EXCELで2つの数値のうち大きい...
-
Excelで隣のセルと同じ内容に列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセル関数で、数字の入った...
-
エクセルの偶数行(奇数行)の抽出
-
可視セルを対象としたcountifが...
-
オートフィルタで選択したデー...
-
エクセルで、条件に一致した行...
-
オートフィルタで3つ以上の条...
-
【Excel/関数/条件付き書式】月...
-
access マクロでのフィルタの...
-
Excel共有ブックのオートフィル...
-
オートフィルタは金額の桁カン...
-
【EXCEL】条件に一致した最新デ...
-
【excel】リスト内の条件にあっ...
-
エクセルにて、フィルタをかけ...
-
関数で小数点以下を抽出したい
-
エクセル、オートフィルタで最...
-
オートフィルタで未入力(空白...
おすすめ情報