|
楼主 |
发表于 2012-7-30 09:37
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
把负值改为0:
- Sub 第三次练习3()
- Dim dic, Arr(), Brr(), Crr(), m%, n%
- Set dic = CreateObject("Scripting.dictionary") '创建一个字典对象
- Arr = Sheet25.Range("l1").CurrentRegion '把4月份销售统计表数据存储到数组Arr
- Brr = Sheet25.Range("q1").CurrentRegion '把5月份销售记录数据存储到数组Brr
- Range("a4:d100").ClearContents '清空当前工作表中单元格区域
-
-
- '把4月份销售"名称 & 规格"添加到字典 dic 中,设置对应的Item为0。
- For i = 4 To UBound(Arr)
- dic.Add Arr(i, 1) & Arr(i, 2), 0
- Next
-
-
- For i = 4 To UBound(Brr) '循环读取5月份数据
- If dic.exists(Brr(i, 2) & Brr(i, 3)) Then
- n = dic(Brr(i, 2) & Brr(i, 3)) '查字典,读取序号
- Else
- m = m + 1
- dic.Add Brr(i, 2) & Brr(i, 3), m
- ReDim Preserve Crr(1 To 4, 1 To m)
- Crr(1, m) = Brr(i, 2) '将名称存储到数组Crr()第1行
- Crr(2, m) = Brr(i, 3) '将规格存储到数组Crr第2行
- n = m
- End If
-
- If n > 0 Then '判断返回的序号是否大于-1,如果大于0,表示4月份数据表中不存在该 名称 & 规格 。则:
- Crr(3, n) = Crr(3, n) + Brr(i, 4) '汇总数量,保存到数组Crr第3行
- Crr(4, n) = Crr(4, n) + Brr(i, 5) '汇总金额,保存到数组Crr第4行
- End If
- Next
-
- Range("a4").Resize(m, 4).Value = WorksheetFunction.Transpose(Crr)
- End Sub
复制代码
|
|