• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでオートフィルタを使った抽出がうまくいきませんのでどなたか教えて)

VBAでオートフィルタを使った抽出がうまくいかない理由と解決方法

このQ&Aのポイント
  • VBAでオートフィルタを使って日付の抽出を行いたい場合、条件の設定に注意が必要です。特に、開始日と終了日の条件を同時に指定する際には、演算子の設定に気を付ける必要があります。
  • 具体的には、開始日と終了日の条件を設定する際には、Operatorプロパティを使ってxlAndを指定する必要があります。これにより、開始日と終了日の両方の条件が満たされた場合にデータが抽出されます。
  • また、抽出範囲には十分なデータが含まれていることも確認してください。抽出範囲が不足している場合、正しい結果が得られないことがあります。

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

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

上手く行かないとは,何もフィルタされないとかで挙動が不正という事じゃなく,単純にエラーが出て止まるという意味ですか? であれば,ご質問の掲示間違いじゃなくホントにマクロをミスっているのでしょう。 間違い: With Worksheets("sheet").Activate 正解: With Worksheets("sheet")

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

基本的な間違いはテキストボックスでのデータはあくまでも文字列であるということです。日付を表すバリアント型に変えて計算させる必要があります。 1行目には項目名があるとして次のようなマクロにすることで良いでしょう。 テキストボックスはシートに上に有り、2010/5/26のように入力されるものとします。 Sub 選択() 開始日 = ">=" & DateValue(ActiveSheet.TextBox1.Text) 終了日 = "<=" & DateValue(ActiveSheet.TextBox2.Text) ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:="<>" ActiveSheet.Range("C1").AutoFilter Field:=3, _ Criteria1:=開始日, Operator:=xlAnd, _ Criteria2:=終了日 End Sub

関連するQ&A