• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL マクロの実行時エラーについて)

EXCELマクロ実行時エラーについて

このQ&Aのポイント
  • EXCELマクロでフィルター設定しましたが実行時エラー'1004'になってしまいます。
  • フィルターの範囲指定を変数で指定した場合、エラーが発生します。
  • 解決策として、変数の指定を具体的な数字で行うことが必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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 同様に、ループの中でやってるほかの「内緒の」何か処理についても、一括で出来ないか工夫します。 必要に応じて別途ご相談を投稿してみてください。ここで「ついでに」聞かないでくださいね。

shig
質問者

お礼

省略部分は1行1行チェックして計算するマクロが組んであります。 今回はアドバイス頂いたその2で行いたいと思います。 大変助かりました。ありがとうございます。

その他の回答 (1)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

"$A$1:$O$" & RowCounterにすればよいのではないでしょうか。

shig
質問者

お礼

これでOKになりました。 ありがとうございます。

関連するQ&A