双倍到时间格式VBA



在乞求时,我想告诉你,我刚刚读了很多关于它的堆栈,我没有找到解决方案,所以......

我正在减去两个日期1 - 2017/05/05 17:002 - 2017/05/09 18:00

我想收到"4天1小时"我应该怎么做?我尝试使用DateFormat/Format/DateDiff和很多东西。

它并不总是一个现成的 VBA 函数。尤其是对于日期,我很少找到我想要的东西完全符合 VBA 就绪。试试这个自定义函数:

Function myDateDiff(ByVal d1 As Date, ByVal d2 As Date) As String
  Dim days As Long, hours As Long
  days = DateDiff("d", d1, d2)               ' diff in days
  hours = DateDiff("h", d1, d2) - days * 24  ' diff in hours
  myDateDiff = days & " Day" & IIf(days > 1, "s ", " ") & hours & " Hour" & IIf(hours > 1, "s", "")
End Function

Sub Test()
    Dim d1 As Date, d2 As Date
    d1 = CDate("2017/05/05 17:00")
    d2 = CDate("2017/05/09 18:00")
    Debug.Print myDateDiff(d1, d2)    ' 4 Days 1 Hour
    d1 = CDate("2017/05/05 17:00")
    d2 = CDate("2017/05/06 19:00")
    Debug.Print myDateDiff(d1, d2)    ' 1 Day 2 Hours
End Sub

最新更新