Excel精英培训网

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

[已解决]VBA代码标记重复数据

[复制链接]
发表于 2013-7-13 13:00 | 显示全部楼层 |阅读模式
5学分
Sub cz()
Dim d, i%
Columns("G:G").ClearContents
r = [d65536].End(3).Row
arr = Range("d2:d" & r)
Set d = CreateObject("Scripting.dictionary")
For i = 1 To UBound(arr)
    If d.exists(arr(i, 1)) Then
       Range("g" & i + 1) = "重复号码"
       n = d(arr(i, 1))
       Range("g" & n + 1) = "重复号码"
    Else
       m = m + 1
       d.Add arr(i, 1), m
    End If
Next
Set d = Nothing
End Sub
请问下大家,上面的代码是对重复的数据进行标记“重复号码”字样,在数据源D列进行重复查找,但是对D列升序或降序排序后,这段代码重复标记就出现错误,就是说重复的号码在不连续的情况下,代码可以正常标记,排序后重复号码都挤到一起,代码 就会标记错误。
求修改!!麻烦了

最佳答案
2013-7-13 13:14
把m = m + 1
d.Add arr(i, 1), m
两行改成 d(arr(i, 1)) = i

重复标记Vba.rar

11.8 KB, 下载次数: 33

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-7-13 13:14 | 显示全部楼层    本楼为最佳答案   
把m = m + 1
d.Add arr(i, 1), m
两行改成 d(arr(i, 1)) = i

评分

参与人数 1 +1 收起 理由
chenrh007 + 1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-7-13 13:21 | 显示全部楼层
上清宫主 发表于 2013-7-13 13:14
把m = m + 1
d.Add arr(i, 1), m
两行改成 d(arr(i, 1)) = i

谢谢,我先试试
回复

使用道具 举报

 楼主| 发表于 2013-7-13 13:24 | 显示全部楼层
谢谢 上清宫主,对了,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 08:49 , Processed in 0.238253 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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