2013-04-07 67 views
0

我有兩列在Excel這樣的:Excel中:根據細胞檢查時間差值

BoxA1000 | 7/4/2013 15:00:43 - User 
BoxA1001 | 7/4/2013 15:01:43 - User 
BoxA1002 | 7/4/2013 15:02:43 - User 
BoxA1003 | 7/4/2013 15:03:43 - User 
BoxA1000 | 7/4/2013 15:04:43 - User 

,併爲每一行,我想找到是否有前一行在那裏的第一列的單元格包含相同值(BoxA1000),然後查看第二列單元格的時間差,並將其放在第三行的新單元格中。

對於上面的例子中我想要的結果是

BoxA1000 | 7/4/2013 15:00:43 - User | NO previous entry 
BoxA1001 | 7/4/2013 15:01:43 - User | NO previous entry 
BoxA1002 | 7/4/2013 15:02:43 - User | NO previous entry 
BoxA1003 | 7/4/2013 15:03:43 - User | NO previous entry 
BoxA1000 | 7/4/2013 15:04:43 - User | 00:04:00 (or) 4 minites (or) something like that 

我如何能做到這一點與宏?

回答

0

附加假設:沒有列標題,數據範圍連續並在Range("A1")開始,只有一個可能重複的任何A列條目。

Sub test_Solution() 

Dim arrBox As Variant 
    arrBox = Range(Range("A1"), Range("B1").End(xlDown)) 
Dim boFound As Boolean 

Dim i As Long, j As Long 
For i = 1 To UBound(arrBox, 1) 
    For j = 1 To i 
     If arrBox(i, 1) = arrBox(j, 1) And i <> j Then 
      'here we found 
      Cells(i, 3) = Format(arrBox(j, 2) - arrBox(i, 2), "h:m:s") 
      boFound = True 
      Exit For 
     End If 
    Next j 
    If Not boFound Then Cells(i, 3) = "No previous entry" 
    boFound = False 
Next i 
End Sub