Vba 当B列中出现相同的对应值时,计算A列中值的时间差
我从我的epos系统中得到一份报告,该报告在a列中给出了产品销售的时间,其条形码将出现在相应的B列中。相同的条形码将在B列中第二次出现,在列表的下一个a列中给出了稍后的时间 我想知道如何计算A列中的值与B列中该产品条形码的第一个和第二个条目之间的时间差。我知道如何使用IF函数根据B列中的标准对A列中的值求和,但无法计算如何进行减法Vba 当B列中出现相同的对应值时,计算A列中值的时间差,vba,excel,Vba,Excel,我从我的epos系统中得到一份报告,该报告在a列中给出了产品销售的时间,其条形码将出现在相应的B列中。相同的条形码将在B列中第二次出现,在列表的下一个a列中给出了稍后的时间 我想知道如何计算A列中的值与B列中该产品条形码的第一个和第二个条目之间的时间差。我知道如何使用IF函数根据B列中的标准对A列中的值求和,但无法计算如何进行减法 任何人有任何建议吗?我相信以下内容将为您指明正确的方向,如果它没有达到您期望的效果,代码将循环通过B列找到匹配的代码,如果它做到了,则会减去时间值,并在C列中输入差异
任何人有任何建议吗?我相信以下内容将为您指明正确的方向,如果它没有达到您期望的效果,代码将循环通过B列找到匹配的代码,如果它做到了,则会减去时间值,并在C列中输入差异(小时格式):
您可以使用VLOOKUP来定位第二个条目,可以与COUNTIF()结合使用,以避免为以后的出现计算任何内容。
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