• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 実行時エラー'1004' オートフィルタ)

VBA 実行時エラー'1004' オートフィルタ

このQ&Aのポイント
  • 初歩的なExcel2003のVBAプログラムで、オートフィルタを使って特定のシートの絞り込みを行おうとしていますが、実行時エラー'1004'が出てうまくいきません。
  • 以前はWorksheetsを使って実装していましたが、Selectionを使うのは良くないと聞いたため、With文を使って書き直しました。しかし、エラーが出てしまいました。
  • このエラーの原因がよくわからないため、解決策を教えていただきたいです。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>やはりエラーが出ますね… 相変わらず誤記が修正できていません。 誤: Criterial1:= 正: criteria1:= また,そのマクロを一体「どのシートに記載して」動かそうとしているのかも,情報提供されていません。 想定) ユーザーフォーム上に配置したコマンドボタン等から実行するのであれば,ユーザーフォームのシートモジュールに private sub CommandButton1_Click() Worksheets("データ").range("A:F").autofilter field:=5, criteria1:=me.comboBox1.text end sub のような書きぶりになります。 想定) (通常はあり得ないと思われますが)標準モジュールに「コンボボックス_絞り込み」マクロを記載している場合は,Meを利用できずエラーになります。

satoron666
質問者

お礼

何度も回答頂きありがとうございます! そして、間違いを修正できていなく、申し訳ありません! 2度も同じミスとかホント恥ずかしいです… criteria1:=に直したところ、問題なく実行する事が できました!ありがとうございました!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>実行時エラー '1004' ご質問の直接の回答としては、ただの誤記です。 誤: Criterial:= 正: Criteria1:= #以下余談:フォローは無しで ご相談のマクロを一体どのイベントプロシジャ(?)に持たせているのかナイショのままですが、そこを直しても別の正体不明のエラーでひっかかるかもしれません。 その場合の回避策はちょっとメンドクサそうなので、マクロの先頭に on error resume next で逃げておいた方が簡単です。 作成例: private sub ComboBox1_Change()  on error resume next  worksheets("データ").range("A:F").autofilter field:=5, criteria1:=me.combobox1.text end sub

satoron666
質問者

お礼

回答ありがとうございました。 あっ…確かに抜けていました! プロシージャは自分で適当に作成したものです。 フィルターを全部開いた状態にしてから このプロシージャを実行しているのですが、 やはりエラーが出ますね… Sub コンボボックス_絞り込み() With ThisWorkbook.Worksheets("データ") .Select .Range("A1").Select .Range("A1").AutoFilter Field:=.Range("E1").Column, _ Criterial1:=Me.ComboBox1.Text End With End Sub Withでくくっているのに、Criterial1の値が フォーム上のデータだからダメなのでしょうかね…? 中々、難しいです…。 ありがとうございました! とりあえず、Withを使わない方法で考えていきます^^

関連するQ&A

専門家に質問してみよう