dポイントプレゼントキャンペーン実施中!

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列)が日付の列です。

何にも表示が出ません。
正しい構文を教えて下さい。

A 回答 (2件)

日付の表示形式によるのかも?



表示形式が"m/d"(10/1とか)なら、
Criteria1:=Format(hiduke, "m/d")
にしてみてはどうでしょうか?
    • good
    • 3
この回答へのお礼

やれました。感動です。
ありがとうございました。
仕事がはかどりそうです。

お礼日時:2007/10/27 12:59

こんにちは。



その問題は、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
    • good
    • 0
この回答へのお礼

くわしくありがとうございます。

お礼日時:2007/10/27 13:00

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