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