В настоящее время я запускаю макрос, который идентифицирует дубликаты в рабочей книге, однако он идентифицирует первый набор индекса и не помещает первый набор, а затем, что привело к тому, что я установил оператор if чтобы передать это, что добавляет дубликат к первому экземпляру тоже. Это занимает много времени, чтобы сделать, однако, и хотел бы улучшить это, если это возможно. Любые предложения были бы очень признательны, я новичок в VBA, но изучал биты, поскольку я столкнулся с новыми проблемами!Усовершенствования цикла VBA-IF
'Declaring the lastRow variable as Long to store the last row value in the Column1
Dim lastRow As Long
'matchFoundIndex is to store the match index values of the given value
Dim matchFoundIndex As Long
'iCntr is to loop through all the records in the column 1 using For loop
Dim iCntr As Long
Dim first_dup As Long
Dim tagging As Long
Dim item_code As String
'Finding the last row in the Column 1
lastRow = Range("B1000000").End(xlUp).Row
'
'looping through the column1
For iCntr = 2 To lastRow
'checking if the cell is having any item, skipping if it is blank.
If Cells(iCntr, 1) <> "" Then
'getting match index number for the value of the cell
matchFoundIndex = WorksheetFunction.Match(Cells(iCntr, 1), Range("A1:A" & lastRow), 0)
'if the match index is not equals to current row number, then it is a duplicate value
If iCntr <> matchFoundIndex Then
'Printing the label in the column B
Cells(iCntr, 4) = "Duplicate"
End If
End If
Next
For first_dup = 2 To lastRow
If Cells(first_dup, 5) = "Duplicate" Then
item_code = Cells(first_dup, 1)
For tagging = 2 To lastRow
If Cells(tagging, 1) = item_code Then
Cells(tagging, 5) = "Duplicate"
End If
Next
End If
Next
Example data:
item code
1
2
3
4
1 duplicate
2 duplicate
3 duplicate
4 duplicate
1 duplicate
2 duplicate
3 duplicate
4 duplicate
Итерирование по диапазону. Помочь будет массив массивов вместо использования отдельного диапазона/ячейки. Вы также можете получить тот же результат, используя формулу '= IF (MATCH ($ A2, $ A: $ A, 0) <> ROW ($ A2)," Duplicate "," ")'. –