プロが教える店舗&オフィスのセキュリティ対策術

エクセル2019を使用しています。
このシートではA列からV列にフィルターが設定されています。
vbaの記録で下記のコードを取得しました。
Sub Macro1()
' Macro1 Macro
Range("C2:N382").Select
ActiveSheet.Range("$A$1:$V$382").AutoFilter Field:=18, Operator:= _
xlFilterValues, Criteria2:=Array(0, "3/31/2021")
End Sub

このマクロを実行すると「実行時エラー'1004’」「RangeクラスのAutoFilterメッソドが失敗しました。」と出て実行できません。
対策を教授ください。

質問者からの補足コメント

  • めぐみん様 回答ありがとうございます。
    あらかじめフィルターの設定を外しておいても同じ結果になります。
    "3/31/2021"のセルは計算式から出た日付形式の値で表示は R3.3.31 となっています。
    Criteria2:をCriteria1:に変更して実行するとマクロは実行されますが、何も抽出されません。

      補足日時:2021/03/03 17:08
  • めぐみん様 回答ありがとうございます。
    #~# で試してみましたが結果は同じになります。
    エクセル2010で使用していた時にはこれで動いていたのですが、2019になってから作動しなくなりました。

      補足日時:2021/03/05 08:38

A 回答 (3件)

No.2です。



どうもググってみてみたら日付を抽出対象としたトラブルは少し前から出ている感じですね。
Excelのバージョンもですが以前の物でも更新するとエラーになり、前の状態に戻す・更新を止めるなどで凌いでいるみたいな感じです。

フィルターオプション(AdvancedFilter)だとどうなのかな?
ただ抽出条件は確か何処かのセルを使ってと言う感じになるかもですが。
    • good
    • 0

>"3/31/2021"



を試しに

#2021/3/31#

では如何でしょう。日付を表したい時は日付の前後に "~" ではなく #~# となりますし。
    • good
    • 0

フィルタが解除されてない状態で実行したとか?



>Criteria2:=Array(0, "3/31/2021")

Criteria1:=Array(0, "3/31/2021") ' 1個目?

>"3/31/2021"

セルの値が文字列でこうなっている?
    • good
    • 1

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