我有一个Excel文件。在 B 列第 11 行中,我的产品编号范围最多为 100 行。代码应在 B 列中找到重复值。我的代码是这样的:
Dim tgtWB As Workbook
Dim tgtWS As Worksheet
Dim LstRow As Long
LstRow = range("B" & Rows.count).End(xlUp).Row
r = 11
For i = 11 To LstRow
Do until tgWS.Range("B" & i) = "0"
If tgtWS.Range("B" & i) = tgtWS.Range("B" & i+1) Then
msgbox " Duplicate/s found! " & vbCrLf & tgtWS.Range("B" &i).value
exit sub
else
r = r+1
end if
Loop
Next
我只是插入了Do until
,因为程序会停止读取 如果 B 列中的值为空或零 (0),则为重复值。和 代码仅比较列 B 行 11 和 12。
我做错了什么?
请检查一下,看看它是否可以适应您的需求:
Sub John()
Dim tgtWS As Worksheet
Dim LstRow As Long
Set tgtWS = ActiveSheet
LstRow = Range("B" & Rows.Count).End(xlUp).Row
For i = 11 To LstRow
If tgtWS.Range("B" & i) = "0" Then Exit Sub
If tgtWS.Range("B" & i) = tgtWS.Range("B" & i + 1) Then
MsgBox " Duplicate/s found! " & vbCrLf & tgtWS.Range("B" & i).Value
Exit Sub
End If
Next i
End Sub
它将找到第一组重复项(如果它们是连续的记录)
如果重复项不是连续的,则需要双循环