У меня возникли проблемы с этим кодом:Удаление дубликатов данных из столбцов в Excel
Sub text()
Dim iListCount As Integer
Dim x As Variant
Dim iCtr As Integer
' Turn off screen updating to speed up macro.
Application.ScreenUpdating = False
' Get count of records to search through (list that will be deleted).
iListCount = Sheets("sheet2").Cells(Rows.Count, "C").End(xlUp).Row
' Loop through the "master" list.
For Each x In Sheets("Sheet2").Range("A1:A" & Sheets("Sheet2").Cells(Rows.Count, "C").End(xlUp).Row)
' Loop through all records in the second list.
For iCtr = iListCount To 1 Step -1
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Sheet2").Cells(iCtr, 3).Value Then
' If match is true then delete row.
Sheets("Sheet2").Cells(iCtr, 1).EntireRow.Delete
End If
Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub
Он работает, и вид работ. Он удаляет один дубликат, но оставляет всех остальных. Я тестирую это, поэтому я использую небольшой размер выборки, поэтому я знаю, что существует 5 дубликатов, однако я не могу заставить этот код удалить их все. Есть идеи? Я думаю, что это проблема с циклом, но независимо от того, что я меняю, я не могу заставить его работать.
Как выглядит набор данных в Excel? – CBRF23
Вы сравниваете колонку A с столбцом C и ищете дубликаты - это то, что вы намеревались? например x.value - это A1, а ячейки (ictr, 3) - C1 – 99moorem
. Итак, вы пытаетесь удалить все строки, где значение в столбце C встречается где-то в столбце A? –