![](/img/trans.png)
[英]How to Calculate time difference in difference format in Excel using VBA
[英]How to calculate the time difference using VBA?
我是 VBA 的初學者。 我只需要在 VBA 中解決我的問題。 謝謝。
以下是我需要完成的任務
從表中選擇一個“ID”和一個“課程”。 在下表中,我提到了幾個 ID 和課程,但是我的項目有多個 ID 和課程。 我不能在所有情況下都輸入 ID 和課程名稱。 有沒有聰明的方法來做到這一點?
對於特定的 ID、特定的課程和特定的日期,我需要計算下表中針對特定“事件”給出的兩行之間的時間差。 前兩行的時間差給出了“閱讀”所花費的時間,第 2 行和第 3 行之間的時間差給出了“寫作”所花費的時間,第 3 行和第 4 行之間的差異給出了“寫作”所花費的時間,依此類推.
任何幫助將不勝感激。 數據格式在下面的鏈接中
您可以修改代碼並嘗試:
Option Explicit
Sub test()
Dim strID As String, strCourse As String, strEvent As String
Dim DateTime1 As Date, DateTime2 As Date
Dim LastRow As Long, i As Long, y As Long
With ThisWorkbook.Worksheets("Sheet1")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
strID = .Range("A" & i).Value
strCourse = .Range("B" & i).Value
DateTime1 = CDate(.Range("C" & i).Value) & " " & CDate(.Range("D" & i).Value)
strEvent = .Range("E" & i).Value
For y = 2 To LastRow
If y <> i Then
If .Range("A" & y).Value = strID And .Range("B" & y).Value = strCourse And .Range("E" & y).Value = strEvent And .Range("F" & i).Value = "" And .Range("F" & y).Value = "" Then
DateTime2 = CDate(.Range("C" & y).Value) & " " & CDate(.Range("D" & y).Value)
.Range("F" & i).Value = Abs(DateDiff("h", DateTime2, DateTime1))
End If
End If
Next y
Next i
End With
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.