楼主 fanxq |
在我们的日常工作中,特别是财务分发工资奖金的时候,财务经常会用vlookup函数来匹配一个人的银行卡号。但如果有相同的人名,vlookup只能匹配第一个找到的人的银行卡号,这样就会导致财务把两个人的钱打在一个人的卡里,另外 一个人没打卡。这样的情况屡屡出现,简直让人崩溃。当然,如果事先知道有重名的人,就可以在姓名后面加1,加2来区别了。那么,如何判断是否有重名的人呢,这段代码可以帮到你。 Sub Duplicative() Dim Arr, dic, i, d Arr = Range("B3", Range("B3").End(xlDown)).Resize(, 5).Value Set dic = CreateObject("Scripting.Dictionary") For i = 1 To UBound(Arr) - 1 For j = i + 1 To UBound(Arr) If Arr(i, 1) = Arr(j, 1) And Arr(i, 4) <> Arr(j, 4) Then _ dic.Add Arr(i, 1), "" Next Next Str1 = Join(dic.keys, ",") MsgBox "重复的姓名是:" & Str1, 64 Set dic = Nothing End Sub 素材见http://www.exceltip.net/thread-22315-1-1.html 如何判断B列中是否有同名但不是一个人的情况.rar |
2楼 い卋玑┾宝珼 |
这个一次只能判断一个重名的耶,而且改好之后,才能继续判断接下来的呢 建议要不加一个自动加1加2,要不可以把重复的姓名罗列一下比较好 |