我将从一个例子开始我的问题,否则将很难解释。
A B C D E (ID)
1 word letter 1
test blabla
other
2 word letter 2
number
3 test true 3
4 other false 4
5 word letter Yes 5
6 word letter Yes 6
7 test letter 7
目标是什么?
如果我试图用文字来解释目标,那将很难理解;这也很难解释 :) 无论如何我也添加了我的代码,如果你对 VBA 很好,你会比文本更好地理解代码。
如果一个值(在这个例子中:单词)也在其他行中,那么我们需要检查 C 列,并且如果 C 列中有一个值,我们在 C 列中找到了多个值(在这个例子中:字母),我们需要重新检查 A 列中的值是否也多次出现。
所以我已经制作了一个 SUB,它可以工作!:) 但如果单元格中有更多值,则不是。所以在示例中,当单元格中只有 1 个值时,如第 6 行和第 7 行,D 列返回:YES
到目前为止,这是我的代码。
Sub duplicates()
Dim source As Range
Dim source2 As Range
For Each source In Range("A1", Range("A" & Rows.Count).End(xlUp))
If source.Value <> "" Then
For Each source2 In Range("A1", Range("A" & Rows.Count).End(xlUp))
If source.Value = source2.Value And source.Offset(0, 4).Value <> source2.Offset (0, 4).Value Then
If source.Offset(0, 2).Value = source2.Offset(0, 2).Value Then
source.Offset(0, 3) = "Yes"
End If
End If
Next source2
End If
Next source
End Sub
所以,我们应该在第 1 行和第 2 行返回:YES。希望你明白我的目标。希望有人可以提供帮助。