• ベストアンサー
※ 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) による判定ミスが起こる原因について詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

原因の1つは、Day(Now) ですね。 これだと、「24」を探すことになります。 なので、1月24日 でも 11月24日 でもヒットすることになります。 Format(Date, "m月dd日") を探すようにして、LookAt:=xlWhole も追加しましょう。 "m月dd日"の部分は、実際の表示形式にあわせてください。

s-genki
質問者

お礼

回答ありがとうございました。 実は Day(Now) にするまでの間 DateValue(Format(Now), "yyyy/mm/dd") なども 試してみたのですが、結果が同じでした。 LookAt:= xlWhole ですかね。

s-genki
質問者

補足

再度のお礼です。 LookAt:xlWhole が効いたようです。 Set c = .Find(DateValue(Format(Date, "yyyy/mm/dd")), LookAt:=xlWhole) で判定にミス無く通るようになりました。 ありがとうございました。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

Day(Now) 2011/1/24 13:25:00 → 24(日にちだけを取りだす) だからです。 "2011/1/24"のみが対象なら Date を使うか Int(Now) としてください。

s-genki
質問者

お礼

回答ありがとうございました。 実は Day(Now) にするまでの間 DateValue(Format(Now), "yyyy/mm/dd"), なども 試してみたのですが、結果が同じでした。 Int(Now) は試してみませんでした。