Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1096|回复: 1

[已解决]物料编码对应相减并汇总

[复制链接]
发表于 2022-11-24 20:43 | 显示全部楼层 |阅读模式
3学分
物料编码对应相减并汇总
最佳答案
2022-11-24 20:43
和之前发的没多大变化,代码改改就能用了
Sub test()
    Dim vArr, brr, crr, dic As Object, i%, j%
    vArr = 工作表2.Range("A2").CurrentRegion.Resize(, 17)
    brr = 工作表1.Range("A2").CurrentRegion
    ReDim crr(1 To UBound(brr) - 1, 1 To 2)
    Set dic = VBA.CreateObject("scripting.dictionary")
    For i = 2 To UBound(brr)
        dic(brr(i, 1)) = i - 1
    Next i
    For j = 2 To UBound(vArr)
        If dic.exists(vArr(j, 1)) Then
            crr(dic(vArr(j, 1)), 1) = crr(dic(vArr(j, 1)), 1) + (vArr(j, 13) - vArr(j, 16))
            crr(dic(vArr(j, 1)), 2) = crr(dic(vArr(j, 1)), 2) + (vArr(j, 14) - vArr(j, 17))
        End If
    Next j
    工作表1.Range("K3").Resize(UBound(crr), 2).ClearContents
    工作表1.Range("K3").Resize(UBound(crr), 2) = crr
End Sub

物料编码对应相减并汇总.rar

13.89 KB, 下载次数: 13

物料编码对应相减并汇总

最佳答案

查看完整内容

和之前发的没多大变化,代码改改就能用了 Sub test() Dim vArr, brr, crr, dic As Object, i%, j% vArr = 工作表2.Range("A2").CurrentRegion.Resize(, 17) brr = 工作表1.Range("A2").CurrentRegion ReDim crr(1 To UBound(brr) - 1, 1 To 2) Set dic = VBA.CreateObject("scripting.dictionary") For i = 2 To UBound(brr) dic(brr(i, 1)) = i - 1 Next i For j = 2 To UBoun ...
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-11-24 20:43 | 显示全部楼层    本楼为最佳答案   
和之前发的没多大变化,代码改改就能用了
Sub test()
    Dim vArr, brr, crr, dic As Object, i%, j%
    vArr = 工作表2.Range("A2").CurrentRegion.Resize(, 17)
    brr = 工作表1.Range("A2").CurrentRegion
    ReDim crr(1 To UBound(brr) - 1, 1 To 2)
    Set dic = VBA.CreateObject("scripting.dictionary")
    For i = 2 To UBound(brr)
        dic(brr(i, 1)) = i - 1
    Next i
    For j = 2 To UBound(vArr)
        If dic.exists(vArr(j, 1)) Then
            crr(dic(vArr(j, 1)), 1) = crr(dic(vArr(j, 1)), 1) + (vArr(j, 13) - vArr(j, 16))
            crr(dic(vArr(j, 1)), 2) = crr(dic(vArr(j, 1)), 2) + (vArr(j, 14) - vArr(j, 17))
        End If
    Next j
    工作表1.Range("K3").Resize(UBound(crr), 2).ClearContents
    工作表1.Range("K3").Resize(UBound(crr), 2) = crr
End Sub

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 19:16 , Processed in 0.267697 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表