2017-06-20 537 views
0

我必須包含數據的格式爲mm/dd/yyyy hh:mm的B和C列,會議。VBA宏 - 從日期和時間excel單元提取時間 - VBA

我試圖創建一個VBA宏,它可以從兩列中僅提取格式爲hh:mm的時間,然後計算兩個時間點之間的差異,以便找出每個會議的持續時間(結果將顯示在D欄中)。

你能告訴我們這裏可以做些什麼嗎?

+0

如果B/C是日期時間只是通過它們兩個,因爲它們是作爲參數datediff() –

+0

日期部分總是相同的每對? –

+1

這不需要宏,可以用公式計算 – avb

回答

1

在列d使用式

=(C:C-B:B)*24 

得到以小時的差異。


或者,而不是僅僅用下面的公式在列d

=C:C-B:B 

和格式列d隨着時間得到的格式的區別就像hh:mm


您可以添加此公式到VBA所需的範圍,如果需要的話,如

With Worksheets("MySheet").Range("D1:D5").Formula = "=(C:C-B:B)*24" 

或時間格式類似於

With Worksheets("MySheet").Range("D1:D5") 
    .Formula = "=C:C-B:B" 
    .NumberFormat = "hh:mm" 
End With 
1

這給一試:

Sub difff() 
    Dim i As Long, N As Long 

    N = Cells(Rows.Count, "B").End(xlUp).Row 
    For i = 1 To N 
     Cells(i, "D") = Cells(i, "C") - Cells(i, "B") 
    Next i 

    Range("D:D").NumberFormat = "hh:mm" 
End Sub 

enter image description here

0

隨着19/06/2017 13:30:00A120/06/2017 13:39:00A2
給出定製數字格式[h]:mm:ss的公式=A2-A1返回24:09:00
h附近的方括號告訴Excel顯示超過24小時的時間。
如果沒有方括號,它會顯示時間00:09:00。這是因爲它計算爲1天9分鐘,但沒有顯示天數。

爲了獲得日期的時間,您可以將時間格式化爲保持日期/時間飛鏢部分的時間,但只顯示時間。
或者,您可以刪除日期/時間的整數以獲得時間 - 在這種情況下日期部分將顯示爲00/01/1900。 =A1-INT(A1)