首页 > 解决方案 > 当相同的对应值出现在 B 列中时,计算 A 列中值的时间差

问题描述

我从我的 epos 系统收到一份报告,该报告在 A 列中给出了产品销售的时间,其条形码将出现在相应的 B 列中。相同的条形码将在 B 列中再次出现,在列中给出稍后的时间再往下看。

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

有人有什么建议吗?

标签: vbaexcel

解决方案


我相信以下内容会为您指明正确的方向,如果它没有按照您的预期执行,代码将遍历 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

推荐阅读