VBA 代码查找重复的零件编号并相应调整单元格数量总和

问题描述 投票:0回答:1

我目前正在将数据从 Access 提取到 Excel 表中。数据按日期排序,然后按客户名称排序。我想创建一个 VBA 代码来搜索重复的零件号并相应地减去“可用数量”。上表显示了我当前正在经历的情况,下表显示了我正在经历的情况。顶部表格会产生库存水平的错误感觉,因为虽然可用数量是真实的,但如果这些单位被安排在较早的日期,则它们实际上并不可用。

我尝试过各种公式,但不太具备 VBA 的专业知识。

enter image description here

excel vba
1个回答
0
投票

使用 Dict 对象跟踪每个零件的可用数量。

Option Explicit
Sub Demo()
    Dim objDic As Object, rngData As Range
    Dim i As Long, sKey As String
    Dim arrData
    Set objDic = CreateObject("scripting.dictionary")
    Set rngData = Range("A1").CurrentRegion
    arrData = rngData.Value
    For i = LBound(arrData) + 1 To UBound(arrData)
        sKey = arrData(i, 1)
        If objDic.exists(sKey) Then
            arrData(i, 3) = objDic(sKey)
            objDic(sKey) = objDic(sKey) - arrData(i, 2)
        Else
            objDic(sKey) = arrData(i, 3) - arrData(i, 2)
        End If
    Next i
    rngData.Value = arrData
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.