[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付と文字列のAutoFilterがうまく出来ない』(ふみ)
こんにちは。教えて下さい。
シートxls_WSのAM列に多数の日付があり、文字列形式で
2014/09/05 という風に書かれています。
別のブックのSheet1にカレンダーコントロールからM1に開始日、R1に終了日を
記入して、その間の日付を取得したいのですが、該当する日付があっても0になります。
xls_WSの日付を日付形式に変換してもダメでしたが、手作業で、
2014/09/05 を 2014/9/5 に修正してAutoFilterを実行すると取得出来ます。
何が原因で、どの様に修正したら良いのでしょうか?
よろしくお願いします。
Sheet1.Activate
Dim 開始日 As Date Dim 終了日 As Date
開始日 = Sheet1.Range("M1")
終了日 = Sheet1.Range("R1")
xls_WS.Activate
Columns("AM:AM").Select
Selection.NumberFormatLocal = "yyyy/m/d" '"m/d/yy"にしてもダメだった
Range("AM12").AutoFilter field:=39 _ , Criteria1:=">=" & 開始日 _ , Operator:=xlAnd _ , Criteria2:="<=" & 終了日 _ , VisibleDropDown:=False
< 使用 Excel:Excel2007、使用 OS:Windows7 >
>xls_WSの日付を日付形式に変換してもダメでしたが、手作業で、 >2014/09/05 を 2014/9/5 に修正してAutoFilterを実行すると取得出来ます。 表示形式と実数を混同しないでくださいね。 文字列をいくら表示形式を日付にしても文字列のままです。
>Columns("AM:AM").Select >Selection.NumberFormatLocal = "yyyy/m/d" '"m/d/yy"にしてもダメだった こちらの2行を消して Range("AM:AM").TextToColumns DataType:=xlFixedWidth, FieldInfo:=Array(0, 5) を追加してみてください。
(稲葉) 2014/09/05(金) 10:14
表示形式と実数の関係がよく理解出来ていません。
日付で書かれていても、実数が文字列なら、
表示形式を日付にしても実数は日付のタイプにならない。
実数を日付のタイプにしたら表示形式の日付は2014/9/5になった、
これが実数が文字列の時と日付のタイプの時の表示形式の違い、
という理解で良いでしょうか?
実数のタイプの変換、についてもっと勉強します。
ありがとう御座いました。
(ふみ) 2014/09/05(金) 10:45
(ふみ) 2014/09/05(金) 11:59
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.