大佬,我模仿你的写了一个,但为什么报错,说下标越界,我看了下,貌似是字典添加新数据时会出现问题。
'7\19----------------------------------------------------------------------------------------- If InStr(sht.Name, "项目经营看板--") Then arr = sht.UsedRange.Value For i = 6 To 18 '计算模块的行序号 mdic = VBA.Trim$(arr(i, 4))'??? If d.Exists(mdic) Then h = d(mdic) AR(h, 1) = AR(h, 1) +Val(arr(i, 13)): AR(h, 2) = AR(h, 2) + Val(arr(i, 14)) '计算模块列号 BR(h, 1) = BR(h, 1) +Val(arr(i, 17)): BR(h, 2) = BR(h, 2) + Val(arr(i, 18)) CR(h, 1) = CR(h, 1) +Val(arr(i, 21)): CR(h, 2) = CR(h, 2) + Val(arr(i, 22)) Else m = m + 1 d(mdic) = m AR(m, 1) = Val(arr(i, 13)):AR(m, 2) = Val(arr(i, 14)) BR(m, 1) = Val(arr(i, 17)):BR(m, 2) = Val(arr(i, 18)) CR(m, 1) = Val(arr(i, 21)):CR(m, 2) = Val(arr(i, 22)) End If Next '22\26----------------------------------------------------------------------------------------- For i = 20 To 24 '计算模块的行序号 mdic = VBA.Trim$(arr(i, 4))'??? If d.Exists(mdic) Then h = d(mdic) DR(h, 1) = DR(h, 1) +Val(arr(i, 13)): DR(h, 2) = DR(h, 2) + Val(arr(i, 14)) '计算模块列号 ER(h, 1) = ER(h, 1) +Val(arr(i, 17)): ER(h, 2) = ER(h, 2) + Val(arr(i, 18)) FR(h, 1) = FR(h, 1) +Val(arr(i, 21)): FR(h, 2) = FR(h, 2) + Val(arr(i, 22)) Else m = m + 1 d(mdic) = m DR(m, 1) = Val(arr(i, 13)):DR(m, 2) = Val(arr(i, 14)) ER(m, 1) = Val(arr(i, 17)):ER(m, 2) = Val(arr(i, 18)) FR(m, 1) = Val(arr(i, 21)):FR(m, 2) = Val(arr(i, 22)) End If Next End If
|