我正在尝试确定word-vba中两个单独的日期选择器内容控件之间的时差。结果显示在纯文本内容控件中。我目前能够产生一个结果,但很难在" h:mm:ss"中产生时差。格式。任何帮助将不胜感激
答案 0 :(得分:0)
由于VBA没有内置函数来格式化时间跨度,因此您需要自己计算各个组件,例如天,小时,分钟,秒,例如使用以下功能:
Public Function FormattedDateDiff(date1 As ContentControl, date2 As ContentControl) As String
Dim dateDiffInSeconds As Long
Dim dd As Long
Dim hh As Integer
Dim mm As Integer
Dim ss As Integer
Dim ss_remaining As Long
dateDiffInSeconds = Abs(dateDiff("s", date1.Range.Text, date2.Range.Text))
dd = dateDiffInSeconds \ 86400
ss_remaining = dateDiffInSeconds Mod 86400
hh = ss_remaining \ 3600
ss_remaining = ss_remaining Mod 3600
mm = ss_remaining \ 60
ss = ss_remaining Mod 60
If dd > 0 Then
FormattedDateDiff = dd & " days, "
End If
FormattedDateDiff = FormattedDateDiff & TimeSerial(hh, mm, ss_remaining)
End Function