如何用vba计算时差(附示例)


您可以在 VBA 中使用以下基本语法来计算两个时间之间的差异:

 Sub FindTimeDifference()
    
    Dim i As Integer

    For i = 2 To 7
        'calculate time difference in days
        Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
        
        'calculate time difference in hours
        Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
        
        'calculate time difference in minutes
        Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
        
        'calculate time difference in seconds
        Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
    Next i
    
End Sub

这个特定的宏将计算范围A2:A7B2:B7中相应时间之间的差异,并返回以下结果:

  • C2:C7将包含以天为单位的时差
  • D2:D7将包含以小时为单位的时差
  • E2:E7将包含以分钟为单位的时差
  • F2:F7将包含以秒为单位的时间差

以下示例展示了如何在实践中使用此语法。

示例:用 VBA 计算时差

假设我们在 Excel 中有以下两列开始时间和结束时间:

我们可以创建以下宏来计算每个开始时间和结束时间之间的时间差,并将结果显示在 C 至 F 列中:

 Sub FindTimeDifference()
    
    Dim i As Integer

    For i = 2 To 7
        'calculate time difference in days
        Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
        
        'calculate time difference in hours
        Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
        
        'calculate time difference in minutes
        Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
        
        'calculate time difference in seconds
        Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
    Next i
    
End Sub

当我们运行这个宏时,我们会收到以下输出:

VBA计算时间差

C 至 F 列以不同单位显示开始时间和结束时间之间的时间差。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

如何在VBA中比较日期
如何在VBA中计算两个日期之间的天数
如何在VBA中将字符串转换为日期

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注