- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:worksheet.find で Day(Now))
worksheet.find で Day(Now) による判定ミスが起こる理由
このQ&Aのポイント
- EXCEL マクロでworksheet.find で 特定の日付の並んだ列に Day(Now) を判定基準にした所、2011/1/24 に判定処理をかけたにもかかわらず、2011/11/24 がヒットします。
- 2011/1/24 もヒットするのですが、11/24 は明らかに判定ミスなのですが、どうしてこのような事が起こるのでしょうか?
- worksheet.find で Day(Now) による判定ミスが起こる原因について詳しく教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
原因の1つは、Day(Now) ですね。 これだと、「24」を探すことになります。 なので、1月24日 でも 11月24日 でもヒットすることになります。 Format(Date, "m月dd日") を探すようにして、LookAt:=xlWhole も追加しましょう。 "m月dd日"の部分は、実際の表示形式にあわせてください。
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7417/18945)
回答No.2
Day(Now) 2011/1/24 13:25:00 → 24(日にちだけを取りだす) だからです。 "2011/1/24"のみが対象なら Date を使うか Int(Now) としてください。
質問者
お礼
回答ありがとうございました。 実は Day(Now) にするまでの間 DateValue(Format(Now), "yyyy/mm/dd"), なども 試してみたのですが、結果が同じでした。 Int(Now) は試してみませんでした。
お礼
回答ありがとうございました。 実は Day(Now) にするまでの間 DateValue(Format(Now), "yyyy/mm/dd") なども 試してみたのですが、結果が同じでした。 LookAt:= xlWhole ですかね。
補足
再度のお礼です。 LookAt:xlWhole が効いたようです。 Set c = .Find(DateValue(Format(Date, "yyyy/mm/dd")), LookAt:=xlWhole) で判定にミス無く通るようになりました。 ありがとうございました。