首页 文章

使用VBScript在Excel中的日期 - 时间格式问题

提问于
浏览
0

以下代码用于计算两个日期之间的持续时间,例如“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 回答

  • 0

    查看Excel中的 FormatDateTime() 函数 . 这可能有助于您仅存储您在单元格中的意图 . 其次,当我使用Excel进行大量日期格式化时,我确保单元格包含我希望放入单元格的数据类型的FORMAT信息 . 这可能会对你产生影响 . 在我看来,Excel将您的值视为TIME值,可能在"General"单元格格式规则下 . 设置您将此数据放入的单元格,或许可以使用特定的"STRING"格式 . 这样,Excel不会对您的数据做任何假设,然后您可以根据自己的需要解析它 .

相关问题