时间减法代码

时间:2015-06-10 21:27:32

标签: excel vba excel-vba

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,我怎么能在几个小时内得到它?

1 个答案:

答案 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"

...导致错误。您应该使用双打或日期进行所有日期/时间比较。