减去日期+小时并以小时为单位给出结果

时间:2015-06-08 15:35:45

标签: excel vba

如何相互减去以下日期并提供小时数? 请注意,小时数是一个数字,而不是日期。所以我可能还需要一些公式来改变它。 我计划在VBA中使用这样的代码

非常感谢帮助我。

date_converted
2015-06-02 14:41
2015-06-02 11:24
2015-06-03 09:35
2015-06-03 09:34

3 个答案:

答案 0 :(得分:0)

02/06/2015 14:41    
02/06/2015 11:24    -3.283333333
03/06/2015 09:35    22.18333333
03/06/2015 09:34    -0.016666667

上面的A列和B栏

B2 = "=(A2-A1)*24" and 
B3 = "=(A3-A2)*24" and 
B4 = "=(A4-A3)*24"

答案 1 :(得分:0)

=DateValue会将测试转换为Excel日期值,然后您可以在日期使用常用的Excel功能。

如果您对小时感兴趣(并且它不会超过9999小时,或者为负数),那么您可以将单元格格式化为[h]:mm,或者您可以将结果数字乘以24以获得小数小时。

答案 2 :(得分:0)

这是ya的一些代码。

它查看A / 1列中的值,并将其作为日期复制到Col B / 2,然后在C / 3列中减去当前行中的上一行,但不包括在第1行中。 它遍历所有活动行。

在单元格(x,y)中,如果列数发生变化,则更改y。

For i = 1 To ActiveSheet.UsedRange.Rows.Count
    a = Format(Cells(i, 1).Value, "mm/dd/yyyy hh:nn")
    Cells(i, 2).Value = a
    If i <> 1 Then
        Cells(i, 3).FormulaR1C1 = "=(RC[-1]-R[-1]C[-1])*24"
    End If
Next i

所以最终结果如下:

2015-06-02 14:41 6/2/2015 14:41 2015-06-02 11:24 6/2/2015 11:24 -3.283333333 2015-06-03 09:35 6/3/2015 9:35 22.18333333 2015-06-03 09:34 6/3/2015 9:34 -0.016666667