Excel精英培训网

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

[已解决]如何将C-G中全部相同数值用红色标记出来

[复制链接]
发表于 2016-3-30 09:58 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2016-3-30 10:08 编辑

QQ截图20160330100056.jpg
标记相同.zip (12.62 KB, 下载次数: 9)
发表于 2016-3-30 10:11 | 显示全部楼层
附件

标记相同.zip

10.17 KB, 下载次数: 5

评分

参与人数 1 +3 收起 理由
zhouxingyu + 3 感谢帮助!

查看全部评分

回复

使用道具 举报

发表于 2016-3-30 10:15 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-3-30 10:33 | 显示全部楼层
baksy 发表于 2016-3-30 10:11
附件

用的是条件格式?
如果数值很多,用条件格式很影响速度,能否用代码实现?非常感谢!
回复

使用道具 举报

 楼主| 发表于 2016-3-30 10:35 | 显示全部楼层
爱疯 发表于 2016-3-30 10:15
是这样的结果吗?

多谢版主回复.
不过我希望用VBA代码来实现.
回复

使用道具 举报

 楼主| 发表于 2016-3-30 10:37 | 显示全部楼层
爱疯 发表于 2016-3-30 10:15
是这样的结果吗?

爱版能否将贴子移回『Excel VBA程序开发』谢谢!
回复

使用道具 举报

发表于 2016-3-30 11:03 | 显示全部楼层    本楼为最佳答案   
Sub test()
    Dim valueDic, addressDic, A, B, C, i, j
    Set valueDic = CreateObject("scripting.dictionary")
    Set addressDic = CreateObject("scripting.dictionary")
    A = Sheet1.UsedRange


    For i = 2 To UBound(A)
        For j = 3 To UBound(A, 2)
            If A(i, j) <> "" Then
                valueDic(A(i, j)) = valueDic(A(i, j)) + 1
                addressDic(A(i, j)) = addressDic(A(i, j)) & "," & Cells(i, j).Address
            End If
        Next j
    Next i


    A = valueDic.items
    B = addressDic.items
    Cells.Font.ColorIndex = 0
    For i = 0 To UBound(A)
        If A(i) > 1 Then
            C = VBA.Split(B(i), ",")
            For j = 1 To UBound(C)
                Range(C(j)).Font.ColorIndex = 3    '指定字体颜色,3是红色
            Next j
        End If
    Next i
End Sub

标记相同2.rar (13.32 KB, 下载次数: 11)

评分

参与人数 1 +3 收起 理由
zhouxingyu + 3 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-3-30 11:16 | 显示全部楼层
爱疯 发表于 2016-3-30 11:03
Sub test()
    Dim valueDic, addressDic, A, B, C, i, j
    Set valueDic = CreateObject("scripting. ...

达到要求,非常感谢!
再麻烦请教下:题中是C列-G列,假如列是在W列-AA列,代码要在哪里修改?
回复

使用道具 举报

发表于 2016-3-30 11:25 | 显示全部楼层
如果AA列是最右边的1列,就照下面方法修改;否则,再说。

    For j = 3 To UBound(A, 2)
    改成
    For j = 23 To UBound(A, 2)

评分

参与人数 1 +3 收起 理由
zhouxingyu + 3 感谢帮助!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-3-30 11:56 | 显示全部楼层
爱疯 发表于 2016-3-30 11:25
如果AA列是最右边的1列,就照下面方法修改;否则,再说。

    For j = 3 To UBound(A, 2)

没问题了,非常感谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 10:43 , Processed in 0.377464 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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