我的下面的代碼正在做一種持續時間計算,但是在運行時它引發了一個異常,即type mismatch
,儘管這兩個參數都有date values
。因此,任何暗示錯誤是什麼的建議?VBScript中的日期時間錯誤
代碼:
Function TimeSpan(dt1,dt2)
Dim dtTemp
objExcel1.Application.ScreenUpdating = False
If (IsDate(dt1) And IsDate(dt2)) = False Then
TimeSpan = "00:00:00"
Exit Function
End If
If dt2 < dt1 Then
dtTemp = dt2
dt2 = dt1
dt1 = dt2
End If
'-- since you only had days, I have put up to days here.
'-- if you require months, years you may use yy:mm:dd:hh:mm:ss
'-- which is pretty self-explainatory ;)
Msgbox("DT2:" & dt2 & "DT1:" & dt1)
TimeSpan = objExcel1.Application.WorksheetFunction.Text((dt2 - dt1), "[h]:mm:ss")'"dd:hh:mm:ss"
objExcel1.Application.ScreenUpdating = True
End Function
@Tomalak我已經更新了代碼,按你現在得到下面的錯誤。
CODE
Function TimeSpan(dt1, dt2)
If Not (IsDate(dt1) And IsDate(dt2)) Then
TimeSpan = "00:00:00"
ElseIf dt2 < dt1 Then
TimeSpan = TimeSpan(dt2, dt1)
Else
MsgBox((CDate(dt1) - CDate(dt2)))
TimeSpan = objExcel1.Application.WorksheetFunction.Text((CDate(dt1) - CDate(dt2)), "[h]:mm:ss")
End If
End Function
Msgbox Displaying:
我可以得到結果:「[h]:mm:ss」格式,因爲我需要將其最終存儲到Excel單元格中嗎?在'else'部分中的 –
爲什麼你稱這個函數爲'twice'? –
我希望能夠在第二行註釋掉,並且在嘗試使用格式時可以用一個手指移動幾個小時。 –