用于检查列中重复条目的excel宏

时间:2014-05-13 00:43:22

标签: excel excel-vba excel-formula vba

我正在寻找一个宏,它将在另一列中找到重复的条目。 例如,电子表格I在A列和B列中都有超过300个条目,并且值分类。现在,我需要找出列之间的重复条目。像Westford xxxx那样在B列还是没有?请帮忙。

A栏B栏

WestFord xxxx 1.1 / 2.2 1.50直接链接 直接链接1.1 / 2.3 1.55 Westford xxxx

1 个答案:

答案 0 :(得分:0)

您可以使用"匹配(Lookup_Value,Lookup_Array,[Match_type])"功能。如果找到该值,该函数返回一个数字" N / A"如果不是。首先检查A列中每个元素的B列。然后检查B列中每个元素的A列。

如果匹配功能不够,由于您具有部分匹配,您可以编写用户定义的函数,以识别数组中是否存在值。下面是一个检查第一个字符是否匹配的函数示例。

Function StartsWith(InputStr As String, InArr As Range, Optional Chars As Integer = 5) As Boolean

Dim i As Integer
Dim compStr As String
Dim foundFlag As Boolean
For i = 1 To InArr.Rows.Count
    If Len(InputStr) > Chars Then     'we check to make sure inputstr isn't longer
        compStr = Left(InputStr, Chars) 'than then the number of characters we need
    Else
        compStr = InputStr              'if it is too long, then compare the whole thing
    End If
    If compStr = Left(InArr(i, 1), Len(compStr)) Then
        foundFlag = True
        Exit For
    End If
Next i

StartsWith = foundFlag

End Function

如果此代码位于打开的电子表格中的模块中,则可以像使用任何其他函数一样使用StartsWith。如果你想要进一步自动化(比如如果找到重复项就删除单元格,你也可以写一个sub来做到这一点!

互联网是完整的VBA教程,如this one。 试试Google Search