プロが教えるわが家の防犯対策術!

コードを記述した画面で、F5、F8、右△ボタンでは実行ができますが、マクロを登録したボタンで実行するとエラーになります。(ショートカットキーも割り当てましたが同様)

エラー内容は、

実行時エラー'1004'
RangeクラスのAutoFilterメソッドが失敗しました。

です。

超初心者です。
無駄の多い記述でとてもお恥ずかしいのですが以下になります。
ご教示いただけると助かります。
よろしくお願いいたします。

*************************************


Sub オートフィルターで絞り込んで別シートに転記()
'これは動作確認済み

Dim rg
Set rg = Range("A1")
Dim cat
cat = 1


Sheets("作業②").Select
Range("A1").Select

rg.AutoFilter field:=10, Criteria1:=cat   ’・・・・・←ここでつまづく
rg.CurrentRegion.Copy Sheets(6).Range("A1")
Sheets(6).Select
Cells.Select
Cells.EntireColumn.AutoFit
Columns("J:K").Select
Selection.Delete Shift:=xlToLeft

cat = cat + 1
’・・・・続く

A 回答 (1件)

エラーが発生する原因ですが、「ボタンで実行するから」ではなく、「作業②シート以外のシートをアクティブした状態で実行するから」ではないでしょうか?


Selectを多用する初心者には、よく見られる症状です。


>Set rg = Range("A1")

上記の場合、変数rg は、その時点でアクティブなシートのA1セルを指してしまいます。
とりあえず、下記のように書き換えれば、エラーは回避できると思いますが・・・(あくまで「とりあえず」です)

Set rg = Sheets("作業②").Range("A1")
    • good
    • 2
この回答へのお礼

ママチャリさん、ありがとうございます!!!
無事、実行ができました。
助かりました。

お礼日時:2021/05/02 21:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A