发现了很多涉及在两列中查找重复项的问题:
IE。
MS Excel how to create a macro to find duplicates and highlight them? 和 excel mark duplicates values
但是,我正在尝试调整代码以用于查找一列中的重复项。例如这里是一个数据集:
第 1 栏
富
酒吧
23
23
12
富
酒吧
巴特
这就是我现在正在使用的:
Function warnDupes()
Dim lastRow As Long
Dim dict As Object
' Let Col be the column which warnDupes operates on.
Dim Col As String
Col = "A"
Set dict = CreateObject("scripting.dictionary")
lastRow = range(Col & Rows.Count).End(xlUp).Row
On Error Resume Next
For i = lastRow To 1 Step -1
If dict.Exists(range(Col & i).value) = True Then
'range("Y" & i).EntireRow.Delete
MsgBox ("Hmm...Seems to be a duplicate of " & range(Col & i).value & _
" in Cell " & Col & i)
End If
dict.Add range(Col & i).value, 1
Next
End Function
到目前为止,我有一些代码可以完成 90% 的工作。 23 和 23 是匹配的。 Bar 和 Bar 匹配。等等。所以代码匹配字符串和整数。但我希望宏也能够将 Foo 和 foo 匹配为重复项。如何让 Excel 忽略大小写?
这个问题 ( Function for detecting duplicates in Excel sheet ) 似乎相关,但我在调整代码或理解作者做了什么时遇到了麻烦。对代码、解释或建议的任何改进将不胜感激。
谢谢。
更新:
刚刚注意到一些非常奇怪的事情。
数据:
IB6061
IC6071
无论我使用宏还是使用 Excel 中的条件格式工具,都匹配。有什么理由吗?
最佳答案
在 Exists() 和 .Add() 行上,使两个值相同:
If dict.Exists(UCase$(Range(Col & i).Value)) Then
和
dict.Add UCase$(Range(Col & i).Value), 1
这样重复项将始终以大写形式添加到字典中,因此大小写无关紧要。
关于sorting - 宏的建议以在 SINGLE 列中查找重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9469438/