Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 当B列中出现相同的对应值时,计算A列中值的时间差_Vba_Excel - Fatal编程技术网

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

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

我从我的epos系统中得到一份报告,该报告在a列中给出了产品销售的时间,其条形码将出现在相应的B列中。相同的条形码将在B列中第二次出现,在列表的下一个a列中给出了稍后的时间

我想知道如何计算A列中的值与B列中该产品条形码的第一个和第二个条目之间的时间差。我知道如何使用IF函数根据B列中的标准对A列中的值求和,但无法计算如何进行减法


任何人有任何建议吗?

我相信以下内容将为您指明正确的方向,如果它没有达到您期望的效果,代码将循环通过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