如何用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:A7和B2: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
当我们运行这个宏时,我们会收到以下输出:
C 至 F 列以不同单位显示开始时间和结束时间之间的时间差。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: