|
发表于 2010-12-10 12:41
|
显示全部楼层
本楼为最佳答案
Sub justsoso() Dim dic, dic1, arr, i&, arrt(), k& Set dic = CreateObject("scripting.dictionary") Set dic1 = CreateObject("scripting.dictionary") dic1.Add "本币", 0 dic1.Add "外币", 9 arr = [b3:j3] For i = 1 To UBound(arr, 2) dic1.Add arr(1, i), i Next i arr = Sheet11.Range("a1:l" & Sheet11.Cells(Rows.Count, 2).End(3).Row).Value For i = 2 To UBound(arr, 1) If arr(i, 8) <> "" Then If dic.exists(arr(i, 8)) Then arrt(dic1(arr(i, 6)) + dic1(arr(i, 2)), dic(arr(i, 8))) = arrt(dic1(arr(i, 6)) + dic1(arr(i, 2)), dic(arr(i, 8))) + arr(i, 11) arrt(dic1(arr(i, 6)) + dic1(arr(i, 2)) + 18, dic(arr(i, 8))) = arrt(18 + dic1(arr(i, 6)) + dic1(arr(i, 2)), dic(arr(i, 8))) + arr(i, 12) Else: k = k + 1: ReDim Preserve arrt(1 To 36, 1 To k): dic.Add arr(i, 8), k
arrt(dic1(arr(i, 6)) + dic1(arr(i, 2)), k) = arr(i, 11) arrt(dic1(arr(i, 6)) + dic1(arr(i, 2)) + 18, k) = arr(i, 12)
End If End If Next Rows("4:" & Rows.Count).ClearContents Cells(4, 1).Resize(k, 1) = Application.Transpose(dic.keys) Cells(4, 2).Resize(k, 36) = Application.Transpose(arrt) Set dic = Nothing End Sub 不好意思,漏了一段代码。
IDGD8lHX.rar
(46.33 KB, 下载次数: 17)
|
|