依据第一个表“每车每趟”用代码自动生成线路趟次和线路车辆台数,线路趟次表基本功能已完成,就是多了3、4行,要把长度和车号去掉,这是第一个问题。第二个就是计数的问题,用函数公式需要结果过渡表过渡,再进行转置,很是麻烦,用数组加字典有不得其法,感觉字典加数组逻辑非常绕,双条件不知道怎么加,代码是我要自学网中曾贤志老师Excel2010 VBA教程素材中第六章第十节的代码改的,不得其法,请教各位老师了!
源代码:Sub 多列合并计算()
Dim arr1()
Set d = CreateObject("scripting.dictionary")
arr = Range("a2:d" & Cells(Rows.Count, 2).End(xlUp).Row)
For i = 1 To UBound(arr)
If Not d.exists(arr(i, 1)) Then
n = n + 1
d(arr(i, 1)) = n
ReDim Preserve arr1(1 To 4, 1 To n)
arr1(1, n) = arr(i, 1)
arr1(2, n) = arr(i, 2)
arr1(3, n) = arr(i, 3)
arr1(4, n) = arr(i, 4)
Else
m = d(arr(i, 1))
多条件计数.rar
(63.18 KB, 下载次数: 18)
arr1(2, m) = arr1(2, m) + arr(i, 2)
arr1(3, m) = arr1(3, m) + arr(i, 3)
arr1(4, m) = arr1(4, m) + arr(i, 4)
End If
Next
[f2].Resize(n, 4) = Application.Transpose(arr1)
End Sub
附件中有改的代码。
|