以下代码用于计算两个日期之间的持续时间,例如“11/13/2012 11:21:41 AM " and " 11/14/2012 2:32:59 PM” . 该函数产生正确的输出,在这种情况下: 1:03:11 (以dd:hh:mm格式,因此1天,3小时和11分钟) . 在计算之后,脚本将此值存储到Cell中,到目前为止,这是完美的,并且正是我想要的格式 . 之后,另一个脚本运行并根据需要和脚本中的某些逻辑移动该单元格值,并动态地将其存储到所需的单元格 . 我遇到的问题是,持续时间是将"AM"或"PM"添加到该值,这是不正确的,因为这是一个非常具体(和格式化)的DURATION,而不是一天中的实际时间,Excel似乎正在处理作为TIME值而不是 .
Here is the code used to measure the durations:
Function TimeSpan(dt1,dt2)
Dim dtTemp
objExcel1.Application.ScreenUpdating = False
If (IsDate(dt1) And IsDate(dt2)) = False Then
TimeSpan = "00:00:00"
Exit Function
End If
If dt2 < dt1 Then
dtTemp = dt2
dt2 = dt1
dt1 = dt2
End If
TimeSpan = objExcel1.Application.WorksheetFunction.Text((dt2 - dt1), "dd:hh:mm")'"dd:hh:mm:ss"
objExcel1.Application.ScreenUpdating = False
End
1 回答
查看Excel中的
FormatDateTime()
函数 . 这可能有助于您仅存储您在单元格中的意图 . 其次,当我使用Excel进行大量日期格式化时,我确保单元格包含我希望放入单元格的数据类型的FORMAT信息 . 这可能会对你产生影响 . 在我看来,Excel将您的值视为TIME值,可能在"General"单元格格式规则下 . 设置您将此数据放入的单元格,或许可以使用特定的"STRING"格式 . 这样,Excel不会对您的数据做任何假设,然后您可以根据自己的需要解析它 .