- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL マクロの実行時エラーについて)
EXCELマクロ実行時エラーについて
このQ&Aのポイント
- EXCELマクロでフィルター設定しましたが実行時エラー'1004'になってしまいます。
- フィルターの範囲指定を変数で指定した場合、エラーが発生します。
- 解決策として、変数の指定を具体的な数字で行うことが必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
変数を""の中に書いたら変数になりません。 間違い: ActiveSheet.Range("$A$1:$O$RowCounter").AutoFilter Field:=11, Criteria1:="商品A" とりあえず正解: ActiveSheet.Range("$A$1:$O$" & RowCounter).AutoFilter Field:=11, Criteria1:="商品A" #以下余談 一般的な作成例その1: 通常は最終行を指定する必要はありません。 sub macro1() range("A:O").autofilter field:=11, criteria1:="商品A" end sub 一般的な作成例その2: 1行目からわざわざ1行ずつ調べていくのは、超効率悪いです。 sub macro2() dim LastRow as long lastrow = cells(rows.count ,"A").end(xlup).row range("A1:O" & lastrow).autofilter field:=11, criteria1:="商品A" end sub 同様に、ループの中でやってるほかの「内緒の」何か処理についても、一括で出来ないか工夫します。 必要に応じて別途ご相談を投稿してみてください。ここで「ついでに」聞かないでくださいね。
その他の回答 (1)
- mar00
- ベストアンサー率36% (158/430)
回答No.1
"$A$1:$O$" & RowCounterにすればよいのではないでしょうか。
質問者
お礼
これでOKになりました。 ありがとうございます。
お礼
省略部分は1行1行チェックして計算するマクロが組んであります。 今回はアドバイス頂いたその2で行いたいと思います。 大変助かりました。ありがとうございます。