Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2764|回复: 1

以不同颜色显示某列重复项

[复制链接]
发表于 2011-7-13 01:06 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2011-7-13 10:27 编辑

这是我一个求助问题,得到了大家的帮助,后来阿木解决了。


自己觉得这个功能还是有点用吧,有点趣。就对:数据源、某列、是否包含标题行和最后显示,几方面作了通用性更改,但判断主要算法还是使用阿木的。尽管题目不难,但我想了半天,还是想不出别的判断算法,更不谈比阿木的好。

希望能把这修改得更规范,更合理,更好。无论哪方面不好,请各位多给建议!



未命名.jpg

工作簿1.rar (12.88 KB, 下载次数: 58)
发表于 2011-7-13 02:21 | 显示全部楼层
本帖最后由 Zipall 于 2011-7-13 02:22 编辑

回复 爱疯 的帖子

来个不排序的.


  1. Sub ColorMe()
  2.     On Error Resume Next
  3.     c = InputBox("请输入列标", , "C")
  4.     r = Cells(65536, c).End(xlUp).Row
  5.     arr = Cells(1, c).Resize(r, 1).Value
  6.    
  7.     '获取重复次数
  8.     Set d = CreateObject("scripting.dictionary")
  9.     For i = 1 To r
  10.         d(arr(i, 1)) = d(arr(i, 1)) + 1
  11.     Next i
  12.    
  13.    
  14.     '判断是否需要上色并随机出颜色值
  15.     ks = d.keys
  16.     its = d.items
  17.     For i = 0 To UBound(ks)
  18.         If its(i) > 1 Then
  19.             d.Item(ks(i)) = RGB(Int(Rnd * 99) + 99, Int(Rnd * 99) + 99, Int(Rnd * 99) + 99)
  20.         Else
  21.             d.Item(ks(i)) = xlNone
  22.         End If
  23.     Next
  24.    
  25.     '逐行查字典赋予颜色值
  26.     t = Cells(1, 256).End(xlToLeft).Column
  27.     For i = 1 To r
  28.         Cells(i, 1).Resize(1, t).Interior.Color = d(arr(i, 1))
  29.     Next
  30.     Set d = Nothing
  31. End Sub
复制代码

评分

参与人数 1 +16 收起 理由
爱疯 + 16 谢谢zip,来学习

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-30 00:29 , Processed in 0.346942 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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