2014-12-24 67 views
0

我有這個工作簿,有兩個工作表,每個工作表都包含一個列,每個時間列中的第一個單元格需要同步時間 - 我正在做它通過查找時間間隔並從第二張表中添加/減去時間量。看起來是這樣的:EXCEL VBA將double <0轉換爲時間時獲得#VALUE

Dim somethingz As Double 
Dim SanTime As Date, PhTime As Date 

SanTime = Worksheets("Sanity").Cells(2, "B").Value 
PhTime = Worksheets("PH").Cells(2, "B").Value 

For i = 2 To phRowN 

      somethingz = Worksheets("PH").Cells(i, "B").Value - dblDuration 
      Worksheets("PH").Cells(i, "B").Value = Application.Text(somethingz, "[hh]:mm:ss") 
     Next i 
    Else 
     dblDuration = PhTime - SanTime 
     For i = 2 To phRowN 

      somethingz = Worksheets("PH").Cells(i, "B").Value - dblDuration 

      If (somethingz < 0) Then 
       somethingz = something + twentyfour 
      End If 

      Worksheets("PH").Cells(i, "B").Value = Application.Text(somethingz, "[hh]:mm:ss") 

     Next i 
    End If 

現在,如果時間間隔有利於第一頁的01:30:00和在第二個時間是00:05:00,直到我得到somethingz<0例如偉大工程(應調整到22:35:00)它獲得#VALUE!

請注意,直到23:59:00它將工作得很好,並且在01:31:00之後它也可以工作。

試圖將24:00:00添加到「負面」時間,但沒有成功。

+0

對於這兩個應答者和未來的讀者的利益:如果_solved_您的問題的答案,請通過點擊大對勾_accept it_旁邊;如果您至少發現它_helpful_,請點擊向上箭頭圖標來投票。爲了表示對你接受的答案的額外讚賞,你可以額外投票。 – mklement0

回答

0

嘗試這樣:

If dblDuration < Worksheets("PH").Cells(i, "B").Value Then 
    dblDuration = dblDuration +1 
End if 
somethingz = Worksheets("PH").Cells(i, "B").Value - dblDuration 
Worksheets("PH").Cells(i, "B").Value = Application.Text(somethingz, "[hh]:mm:ss")