45、[VBA入门到放弃笔记]字典标记行号

源数据

45、[VBA入门到放弃笔记]字典标记行号_第1张图片
源数据

结果

45、[VBA入门到放弃笔记]字典标记行号_第2张图片
结果

要求:第一条数据重量字段显示订单号的总重量,其余的空白。


Sub cdsr()
Dim arr
    Set d = CreateObject("scripting.dictionary")'创建字典
    arr = [a1].CurrentRegion'数据
    For i = 2 To UBound(arr)'遍历数据
      If Not d.exists(arr(i, 1)) Then'如果是第一条数据(字典里没有key存在)
      d(arr(i, 1)) = i'用字典标记其在数组中的行号
      Else'遇到余下的数据
'根据标记的行号,对重量进行累加(行号是第一条数据所在的行号)
'd(arr(i, 1))返回的是每个订单号在数组中第一条数据所在的行号
      arr(d(arr(i, 1)), 3) = arr(d(arr(i, 1)), 3) + arr(i, 3)
      arr(i, 3) = ""   '清空重量字典
      End If
    Next
    [g1].Resize(UBound(arr), 3) = arr'输出数据
End Sub

示例文件下载

链接: http://pan.baidu.com/s/1geRsxLD 密码: ggft


你可能感兴趣的:(45、[VBA入门到放弃笔记]字典标记行号)