簡體   English   中英

VBA宏-從日期和時間Excel單元格中提取時間-VBA

[英]VBA macro - extract time from date & time excel cell - VBA

我必須在B和C列中包含以下格式的數據: mm/dd/yyyy hh:mm它表示某些會議的開始(B列)和結束日期(C列)。

我正在嘗試創建一個VBA宏,該宏只能以hh:mm格式從兩個列中提取時間,然后計算兩個時間之間的時差,以便找出每次會議的持續時間(結果將是顯示在D列)。

您能建議在這里做什么嗎?

在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

試試看:

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

在此處輸入圖片說明

A1 19/06/2017 13:30:00和在A2 20/06/2017 13:39:00
給定[h]:mm:ss的自定義數字格式的公式=A2-A1返回24:09:00
h周圍的方括號告訴Excel顯示超過24小時的時間。
如果沒有方括號,則時間將顯示為00:09:00 這是因為它計算為1天9分鍾,但未顯示天數。

要僅獲取日期中的時間,您可以將其格式化為時間,以保留日期/時間中的飛鏢部分,但僅顯示時間。
或者,您可以刪除日期/時間的整數以獲取時間-在這種情況下,日期部分將顯示為00/01/1900。 =A1-INT(A1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM