|
こんばんわ 早速ですが質問させていただきます。
シートAに5分単位での時間表が作成されています。(9:00、9:05、9:10・・・)
シートBにはランダムでの時間データが入っています(9:46、11:57・・・)
シートBにあるデータをそれぞれ5分単位で切り下げた時間にして、シートAの該当する部分へ書き込みたいのです。
9:46なら9:45の部分へ、23:04なら23:00へ。
そこで Worksheetfunction.Floor にて5分単位への切り下げを行って時間の比較を行っているのですが、これが正しく反映されません。
試しに下のコードでやってみたところ、同じ23:00同士なのに不一致とみなされてしまいます。
Sub main()
Dim time1 As Date, time2 As Date
time1 = CDate("23:01")
time2 = CDate("23:00")
'time1 を5分単位に切り下げ
time1 = WorksheetFunction.Floor(time1, CDate("0:05"))
If time1 = time2 Then
Debug.Print "ok"
Else
Debug.Print "no"
End If
End Sub
ローカルウインドウで見ても、データはどちらも23:00なのですが・・・
色々試したところ、上のコードで言うと time2 を time1 と同じように Floor関数にて5分単位で切り下げると、 time1 = time2 の式が真と判断されます。
ですが元々5分単位で作成してあるデータを5分単位で切り下げるというのが納得いかないのです。
Floor関数によって切り下げたデータは何か根本的に変わってしまうのでしょうか?
|
|