2015-06-10 140 views
0
If Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11) >= "12:00:00" Then 
    word5 = Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11) - TimeValue(Now) 

這裏是我的代碼來減去當前時間與列H細胞。 這種編碼的結果是0.69694444444444,我怎樣才能得到它是在時間?時間減法代碼

+1

我們在這裏不是生產代碼爲您服務。請發佈您的代碼並詢問您不明白的具體問題,以便我們幫助您瞭解您目前不瞭解的內容。 – Turing85

+0

這是一個vb.net應用程序(在Visual Studio中創建)或VBA宏(在Excel中創建的)?它們不是同一件事。如果它是一個vba宏,請編輯您的問題以刪除vb.net標籤。 – Blackwood

回答

0

TimeValue()返回一個雙精度型和Left()返回一個包含一個字符串的型變量,所以我很驚訝這個工作。你應該得到一個類型不匹配這一點:

word5 = Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11) - TimeValue(Now) 

您需要顯式轉換爲日期類型:

Dim time As Date, result As Date 
time = CDate(Left(ActiveWorkbook.Sheets("Sheet4").Cells(y, 8), 11)) 
result = time - TimeValue(Now) 
Debug.Print result 

請注意,這裏還有一個錯誤在你如果條件 - 你執行文本基於比較。考慮到以下事實...

Debug.Print "10:00:00 PM" > "11:00:00 AM" 

...導致錯誤。你應該做的有兩種雙打或日期全部日期/時間進行比較。

+0

非常感謝那寶貴的榮譽。 –

+0

如果結果> = 「01:00:00」。然後 AX = AX + 1 word4 = word4& 「」 &ActiveWorkbook.Sheets( 「Sheet4」)細胞(Y,2)及 「 - 」 &ActiveWorkbook.Sheets( 「Sheet4」)。電池(Y,5) UserForm1.Label10.Caption = word4 UserForm1.Label11.Caption = AX在這裏,我想顯示word4只有當結果大於1小時 –

+0

這樣,可以幫助我,使必要的變化在這裏 –