0

次のようなExcelに2つの列があります。

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)が含まれている前の行があるかどうかを確認し、2 番目の列のセルの時間差を確認し、3 番目の新しいセルに配置したい行。

上記の例では、結果を

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

マクロでそれを行うにはどうすればよいですか?

4

1 に答える 1

0

追加の前提条件: 列タイトルがなく、データ範囲が連続しており、開始がRange("A1")である、任意の A 列エントリの可能な繰り返しが 1 つだけである。

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
于 2013-04-07T20:35:08.277 に答える