- ベストアンサー
日付をオートフィルタするVBAを教えて下さい。
Sub 日付を検索() Dim hiduke As Date hiduke = Application.InputBox(prompt:="日付を入力", Title:="日付を検索", Type:=2) Range("D3").Select Selection.AutoFilter Selection.AutoFilter Field:=4, Criteria1:=hiduke End Sub この構文が間違っているようで、日付を 10/27 とか入れても 10/27が選択されません。 4列目(D列)が日付の列です。 何にも表示が出ません。 正しい構文を教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
日付の表示形式によるのかも? 表示形式が"m/d"(10/1とか)なら、 Criteria1:=Format(hiduke, "m/d") にしてみてはどうでしょうか?
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 その問題は、Excelのバージョンに影響をされるひとつだったと思います。Date型に代入して、そこで検索するのですから、コードの理屈としては、私は、間違っていないと思います。 私なりに以前考えた理由は、Excelのワークシートからすると、それに合った表示形式で、検索値が、自動変換され検索するのですが、VBAは、そういう処理がなされていないからだと思いました。 他にも、「\」記号が入ったオートフィルタもうまくいかなかった覚えがあります。 こちらのExcel2003 では、以下のような構文でできます。しかし、下位バージョンでは分かりません。 Sub 日付を検索R() Dim hiduke As Variant Dim fmt As String hiduke = Application.InputBox(prompt:="日付を入力", Title:="日付を検索", Type:=2) With Range("D3") fmt = .Offset(1).NumberFormatLocal hiduke = Format(hiduke, fmt) '.AutoFilter .AutoFilter Field:=4, Criteria1:=hiduke End With End Sub
お礼
くわしくありがとうございます。
お礼
やれました。感動です。 ありがとうございました。 仕事がはかどりそうです。