2013-10-26 109 views
0

您能否給我一個代碼,以便從班次時間(例如5:00:00)中扣除「00:30:00」,並存儲在另一個變量中。 轉換時間將從輸入框中獲得。 加成給出正確答案(五點30分00秒),其中作爲扣除給像0.528999等從班次時間扣除30分鐘

If shin2 <> "" Then 
    intime2 = TimeValue(shin2) + TimeValue("00:30:00") 
    MsgBox intime2 
    intime22 = TimeValue(shin2) - TimeValue("00:30:00") 
    MsgBox intime22 
    End If 

親切的問候

+1

你能粘貼你當前使用的代碼嗎? – Sam

+0

感謝您的承諾。這裏是+完美工作的代碼,-ve給出了錯誤的答案。如果shin2 <>「」然後 intime2 = TimeValue(shin2)+ TimeValue(「00:30:00」) MsgBox intime2 intime22 = TimeValue(shin2) - TimeValue(「00:30:00」) MsgBox intime22 End If – user2851228

+0

您是否聲明瞭變量?什麼是銀泰2和銀泰22? – Sam

回答

1

考慮:

Sub SHIFTTIME() 
    Dim t As Date, s As String 
    s = Application.InputBox(Prompt:="Enter time as hh:mm:ss", Type:=2) 
    t = TimeValue(s) - TimeSerial(0, 30, 0) 
    MsgBox t 
End Sub 
0

我檢查你的代碼,它看起來OK對我來說。

Sub TimeValueTest() 

Dim shin2 As String 
Dim intime22 As Double, intime2 As Double 


shin2 = InputBox("Enter time in hh:mm:ss format") 

If shin2 <> "" Then 
    intime2 = TimeValue(shin2) + TimeValue("00:30:00") 

    Debug.Print "intime2" 
    Debug.Print "value: " & intime2 
    Debug.Print "time: " & Format(intime2, "hh:mm:ss") 
    Debug.Print "----" 

    intime22 = TimeValue(shin2) - TimeValue("00:30:00") 

    Debug.Print "intime22" 
    Debug.Print "value: " & intime22 
    Debug.Print "time: " & Format(intime22, "hh:mm:ss") 
    End If 


End Sub 

如果我在輸入框中輸入05:00:00,則輸出下面的內容。

intime2 
value: 0.229166666666667 
time: 05:30:00 
---- 
intime22 
value: 0.1875 
time: 04:30:00 

引擎蓋下TIMEVALUE轉換時間字符串爲十進制數,所以我懷疑你的奇怪的結果可能有一些與你的變量,以及它們是如何聲明。