发现了很多涉及在两列中查找重复项的问题:

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/

10-17 02:29