excel表单读取13.40.pm,但vba读取0.569444

Excel工作表读取13.40 PM,但vba读取0.569444

在B4单元格中,我们已经input了13点40分,我的代码和当前时间进行比较,看看我们是否迟到

'sh is a variable pointing at my sheet 'dt is a date type dtstart = TimeValue(sh.Range("B" & r.row).Value) dbInterval = dtOff - Time 

我从timevalue()得到一个types不匹配的错误,因为我相信它期望一个string。 Cstr(mycell)不起作用这个数字对我来说看起来不合逻辑。 我坚持已经在工作表中的数据,由另一个脚本放在那里任何人?

正如评论0.569444提到的那样, 已经TimeValue 。 您可以省略所有其他代码,只需执行以下操作:

 dtstart = Range("B" & r.row).Value 

datetypes以Double精度forms存储在Excel和VBA中。 它们可以互换使用。

如果您想要在单元格B4中获取TimeValue,请使用以下行:

 dtstart = TimeValue(Format(sh.Range("B" & r.Row).Value, "hh:mm")) 

为了debugging目的,请使用下面的行:

 Debug.Print dtstart 

在即时窗口的结果是13:40:00