ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 字典法如何求得2个月工资增减情况对比?

字典法如何求得2个月工资增减情况对比?

作者:绿色风 分类: 时间:2022-08-17 浏览:163
楼主
無心
Q:字典法如何求得2个月工资增减情况对比?

A:代码如下:
  1. Private Sub CommandButton1_Click()
  2. Dim arr, brr(), d, i%, k%
  3. Sheet4.Activate
  4. [A17:G65536] = ""
  5. Set d = CreateObject("scripting.dictionary")
  6. ReDim brr(1 To 60000, 1 To 5)
  7. For k = 1 To 2
  8. With Sheets(k)
  9. arr = .Range("C2:F" & .[C65536].End(3).Row)
  10. For i = 1 To UBound(arr)
  11. s = arr(i, 1)
  12. If Not d.exists(s) Then
  13. m = m + 1
  14. d(s) = m
  15. brr(m, 1) = arr(i, 1): brr(m, k * 2) = 1: brr(m, k * 2 + 1) = arr(i, 4)
  16. Else
  17. brr(d(s), k * 2) = brr(d(s), k * 2) + 1
  18. brr(d(s), k * 2 + 1) = brr(d(s), k * 2 + 1) + arr(i, 4)
  19. End If
  20. Next
  21. End With
  22. Next
  23. Set d = Nothing
  24. [A17].Resize(m, 5) = brr
  25. bbb
  26. End Sub

  27. Sub bbb()
  28. r = [A65536].End(3).Row
  29. For i = 17 To r
  30. Cells(i, 6) = Cells(i, 4) - Cells(i, 2)
  31. Cells(i, 7) = Cells(i, 5) - Cells(i, 3)
  32. Next
  33. For j = 2 To 7
  34. Cells(r + 1, j) = Application.Sum(Range(Cells(17, j), Cells(r, j)))
  35. Next
  36. Cells(r + 1, 1) = "合计"
  37. Range("A17:G" & r + 1).Borders.LineStyle = 1
  38. End Sub



字典法如何求得2个月工资增减情况.rar
2楼
亡者天下
过来学习一下啊

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap