当B列中出现相同的对应值时,计算A列中的值的时间差

时间:2018-07-09 14:47:57

标签: excel vba excel-vba

我从epos系统获得了一个报告,该报告在A列中给了我一段时间用于产品销售,其条形码将出现在相应的B列中。相同的条形码将在B列中第二次出现,因此时间在列表下方的A列中。

我试图弄清楚如何计算B列中该产品条形码的第一个条目和第二个条目之间的A列中的值之间的时间差。我知道如何根据条件对A列中的值求和在B列中使用IF函数,但无法计算出减法。

有人建议吗?

1 个答案:

答案 0 :(得分:0)

我相信以下内容将为您指明正确的方向,如果它没有达到您的期望,则代码将遍历B列以查找匹配的代码,并且如果这样做,它将减去时间值并输入C列之间的差异(以小时格式):

Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 1 To LastRow
valu = ws.Cells(i, 1).Value
code = ws.Cells(i, 2).Value
    For x = i + 1 To LastRow
        If ws.Cells(x, 2).Value = code Then
            s.Cells(i, 3).NumberFormat = "hh:mm"
            ws.Cells(i, 3).Value = (ws.Cells(x, 1).Value - valu)
        End If
    Next x
Next i
End Sub