ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5356|回复: 2

[求助] 通过vba根据单元格填充颜色统计个数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-28 12:17 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
vba代码如下:
  1. Sub Count()

  2. Dim a, b, c, d, e, f, g, h, i, j, k, l, m, n, x, y As Long   '定义数据类型

  3. a = Worksheets("Sheet1").Range("N4").Interior.Color   '将N4单元格的颜色值赋给a

  4. b = Worksheets("Sheet1").Range("N5").Interior.Color   '将N5单元格的颜色值赋给b

  5. c = Worksheets("Sheet1").Range("N6").Interior.Color   '将N6单元格的颜色值赋给c

  6. d = Worksheets("Sheet1").Range("N7").Interior.Color   '将N7单元格的颜色值赋给d

  7. e = Worksheets("Sheet1").Range("N8").Interior.Color   '将N8单元格的颜色值赋给e

  8. f = Worksheets("Sheet1").Range("N9").Interior.Color   '将N9单元格的颜色值赋给f

  9. g = Worksheets("Sheet1").Range("N10").Interior.Color   '将N10单元格的颜色值赋给g

  10. h = 0    '对h进行初始化赋值

  11. i = 0    '对i进行初始化赋值

  12. j = 0    '对j进行初始化赋值

  13. k = 0    '对k进行初始化赋值

  14. l = 0    '对l进行初始化赋值

  15. m = 0    '对m进行初始化赋值

  16. n = 0    '对n进行初始化赋值

  17. For x = 4 To 27    '从第4行到27行进行循环执行

  18. For y = 2 To 12      '从第2列到第12列进行循环执行

  19.                     '查找的范围相当于B4:L27

  20. If Worksheets("Sheet1").Cells(x, y).Interior.Color = a Then

  21. h = h + 1    '如果找到的单元格颜色与N4单元格相同,则加1

  22. Worksheets("Sheet1").Range("P4") = c  '将结果输出到Sheet1表格的P4单元格

  23. End If


  24. If Worksheets("Sheet1").Cells(x, y).Interior.Color = b Then

  25. i = i + 1    '如果找到的单元格颜色与N5单元格相同,则加1

  26. Worksheets("Sheet1").Range("P5") = c  '将结果输出到Sheet1表格的P4单元格

  27. End If


  28. If Worksheets("Sheet1").Cells(x, y).Interior.Color = c Then

  29. j = j + 1    '如果找到的单元格颜色与N6单元格相同,则加1

  30. Worksheets("Sheet1").Range("P6") = c  '将结果输出到Sheet1表格的P4单元格

  31. End If


  32. If Worksheets("Sheet1").Cells(x, y).Interior.Color = d Then

  33. k = k + 1    '如果找到的单元格颜色与N7单元格相同,则加1

  34. Worksheets("Sheet1").Range("P7") = c  '将结果输出到Sheet1表格的P4单元格

  35. End If


  36. If Worksheets("Sheet1").Cells(x, y).Interior.Color = e Then

  37. l = l + 1    '如果找到的单元格颜色与N8单元格相同,则加1

  38. Worksheets("Sheet1").Range("P8") = c  '将结果输出到Sheet1表格的P4单元格

  39. End If


  40. If Worksheets("Sheet1").Cells(x, y).Interior.Color = f Then

  41. m = m + 1    '如果找到的单元格颜色与N9单元格相同,则加1

  42. Worksheets("Sheet1").Range("P9") = c  '将结果输出到Sheet1表格的P4单元格

  43. End If


  44. If Worksheets("Sheet1").Cells(x, y).Interior.Color = g Then

  45. n = n + 1    '如果找到的单元格颜色与N10单元格相同,则加1

  46. Worksheets("Sheet1").Range("P10") = c  '将结果输出到Sheet1表格的P4单元格

  47. End If



  48. Next

  49. Next

  50. End Sub
复制代码



但是计算出来的结果。。。不是想要的     求助

动态台账.zip

17.72 KB, 下载次数: 27

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-28 12:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

TA的精华主题

TA的得分主题

发表于 2018-9-29 12:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
供参考:
  1. Sub 户数()
  2.     Dim nR1%, Arr(), nR2%,  n%
  3.     nR1 = Range("o3").End(xlDown).Row
  4.     Dim ds As Object
  5.     Set ds = CreateObject("Scripting.Dictionary")
  6.     ReDim Arr(4 To nR1, 1 To 1) '声明一个数组,保存统计结果
  7.     For i = 4 To nR1
  8.         ds(Range("n" & i).Interior.Color) = i '将N列区域中的样本颜色值保存到字典备查
  9.     Next
  10.    
  11.     nR2 = Range("a4").End(xlDown).Row
  12.    
  13.     For i = 4 To nR2 '循环数据区域所有行
  14.         For j = 2 To 12 '循环各列
  15.             n = ds(Cells(i, j).Interior.Color) '查字典,获得当前颜色对应的行号
  16.             If n > 0 Then
  17.                 Arr(n, 1) = Arr(n, 1) + 1 '按颜色累加户数
  18.             End If
  19.         Next
  20.     Next
  21.     Range("p4:p" & nR1).Value = Arr '将统计结果输出到工作表
  22.    
  23. End Sub
复制代码

yinss05180_动态台账.rar

18.6 KB, 下载次数: 177

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 07:35 , Processed in 0.048776 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表