大家好,我是陈小虾,是一名自动化方向的IT民工。写博客是为了记录自己的学习过程,通过不断输出倒逼自己加速成长。但功能说明:由于水平有限,博客中难免会出现一些BUG,或者有更优方案恳请各位大佬不吝赐教!微信公众号:万能的Excel

功能说明:

1、根据每天的出库、入库记录,自动筛选出产品ID号

2、实时统计每个产品的库存状态

3、自动统计每个月产品总出库、入库数量

关注公众号:万能的Excel     并回复【进销表】获取源文件!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim d1 As Object, d2 As Object, arr, i As Integer, k, brr
    Set d1 = CreateObject("scripting.dictionary")
    Set d2 = CreateObject("scripting.dictionary")
    Set d3 = CreateObject("scripting.dictionary")
    
If (12 < Target.Rows) And (1 < Target.Columns < 11) Then

    arr = Range("c11").CurrentRegion
    For i = 2 To UBound(arr)
        If Len(arr(i, 3)) Then
            If d1(arr(i, 3)) = "" Then '如果是否有数据
                If arr(i, 5) = "入库" Then
                    d1(arr(i, 3)) = arr(i, 6) '如果该关键字第一次出现
                Else
                    d2(arr(i, 3)) = arr(i, 6)
                End If
                d3(arr(i, 3)) = arr(i, 2)
            Else '当该关键字出现了第二次以上
                If arr(i, 5) = "入库" Then
                    d1(arr(i, 3)) = d1(arr(i, 3)) + arr(i, 6) '如果该关键字第一次出现
                Else
                    d2(arr(i, 3)) = d2(arr(i, 3)) + arr(i, 6)
                End If
            End If
        End If
    Next i
    f = 12
    For Each k In d1.keys '遍历每一个关键字
        Cells(f, "l") = k
        Cells(f, "m") = d3(k)
        Cells(f, "n") = d1(k)
        Cells(f, "o") = d2(k)
        Cells(f, "p") = d1(k) - d2(k)
        f = f + 1
    Next k
    f = 0
End If
End Sub

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐