If Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11) >= "12:00:00" Then
word5 = Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11) - TimeValue(Now)
以下是使用Column H单元格减去当前时间的代码。 这个编码的结果是在0.69694444444444,我怎么能在几个小时内得到它?
答案 0 :(得分:0)
TimeValue()
返回一个Double,Left()
返回一个包含字符串的Variant,所以我很惊讶这完全有效。你应该得到一个类型不匹配:
word5 = Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11) - TimeValue(Now)
您需要显式转换为日期类型:
Dim time As Date, result As Date
time = CDate(Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11))
result = time - TimeValue(Now)
Debug.Print result
请注意,If条件中也存在错误 - 您正在执行基于文本的比较。考虑一下这个事实......
Debug.Print "10:00:00 PM" > "11:00:00 AM"
...导致错误。您应该使用双打或日期进行所有日期/时间比较。