我的 VBA 代码中读取重复项的错误在哪里



我有一个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

它将找到第一组重复项(如果它们是连续的记录)
如果重复项不是连续的,则需要双循环

相关内容

最新更新