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

时间:2016-09-18 14:22:26

标签: excel vba excel-vba

Excel表格读取下午13.40,但vba读取0.569444

在单元格B4中我们完全按照输入的13.40 PM运行,我的代码将其与当前时间进行比较,看看我们是否迟到了

'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()得到一个类型不匹配错误,因为我相信它需要一个字符串。 Cstr(mycell)没有帮助 这个数字对我来说看起来不合逻辑。 我被困在工作表中的数据,被另一个脚本放在那里 任何人吗?

2 个答案:

答案 0 :(得分:1)

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

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

日期类型作为Double存储在Excel和VBA内部。它们可以互换使用。

答案 1 :(得分:0)

如果您想在Cell B4中获取TimeValue,请使用以下行:

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

出于调试目的,请使用以下行:

Debug.Print dtstart

立即窗口中的结果是13:40:00