我正在寻找一个宏,它将在另一列中找到重复的条目。 例如,电子表格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
答案 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