45、[VBA入门到放弃笔记]字典标记行号
2017-07-09 本文已影响43人
叶知行
源数据
源数据结果
结果要求:第一条数据重量字段显示订单号的总重量,其余的空白。
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