我有一张数据表
A - B - A - A - B - C - B
E - E - E - D - D - E - F
G - G - H - H - H - I - H
J - K - K - K - K - L - L
有没有办法让我挑出第一排的A和B,E&第二行的D,基本上是每行的重复,它在同一行中有2个差异重复。
答案 0 :(得分:1)
是的,您可以使用词典来实现这一目标。转到VB编辑器,然后选择Tools,References并勾选" Microsoft Scripting Runtime"导入词典功能(这种方法有助于Intellisense)。
编写此代码是为了以工作表函数的形式提供该功能。
您可以根据需要进行修改 - 如果您需要帮助,请回复。我不确定您的数据是如何格式化的,因此删除连字符和空格的行。
Public Function ShowDuplicates(rngSource As Range) As String
Dim dctUnique As Dictionary
Dim dctDups Dictionary
Dim intCounter As Integer
Dim strSource As String
Dim strCurrent As String
Set dctUnique = New Dictionary
Set dctDups = New Dictionary
' Remove hyphen and space
strSource = Replace(Replace(rngSource.Value, "-", ""), " ", "")
For intCounter = 1 To Len(strSource)
strCurrent = Mid$(strSource, intCounter, 1)
If dctUnique.Exists(strCurrent) Then
If Not dctDups.Exists(strCurrent) Then
' Only add it to the dups dict if required
dctDups.Add strCurrent, strCurrent
End If
Else
dctUnique.Add strCurrent, strCurrent
End If
Next
If dctDups.Count > 0 Then
ShowDuplicates = Join(dctDups.Keys(), ",")
Else
ShowDuplicates = ""
End If
End Function