我有一个代码,其中一个单元格包含上一次。如果我运行它运行的程序并计算当前时间和上一个时间之间的差异(单元格包含)并将其放在另一个单元格中。我试过了,但它给了我错误13,并说类型不匹配,请帮助我。
Cells(Row, 3).Value = DateDiff("h:mm:ss", Cells(Row, 2), Now())
答案 0 :(得分:1)
您可以通过计算总秒数的差异来创建自定义DateDiff
。然后进行数学运算以获得小时数(24 * 60秒),分钟(60秒)和秒数。
然后,将结果转换为String
,从而将值放入单元格中,作为“hh:mm:ss”。
<强>代码强>
Option Explicit
Sub GetDiffInTime()
Dim lRow As Long
Dim DHours As Long, DMin As Long, DSec As Long, TotalSec As Long
lRow = 2
' get total difference in seconds
TotalSec = DateDiff("s", Cells(lRow, 2), Now())
DHours = Application.WorksheetFunction.RoundDown(TotalSec / (24 * 60), 0)
DMin = Application.WorksheetFunction.RoundDown((TotalSec - (DHours * (24 * 60))) / 60, 0)
DSec = TotalSec - (DHours * (24 * 60)) - (DMin * 60)
' convert the values into strings, make the cell format look like "hh:mm:ss"
Cells(lRow, 3) = CStr(DHours) & ":" & CStr(DMin) & ":" & CStr(DSec)
End Sub