В тази статия ще създадем макрос за премахване на дублиращи се записи от данните.
Суровите данни се състоят от данни за служителите, които включват име, възраст и пол.
Логично обяснение
Създадохме макрос „RemovingDuplicate“, за да премахнем дублиращите се записи от данните. Този макрос първо извлича данните в последователност и след това прави сравнение между стойности на два последователни реда, за да открие дублиращи се записи.
Обяснение на кода
ActiveSheet.Sort.SortFields.Clear
Горният код се използва за премахване на всяко предишно сортиране на данните.
ActiveSheet.Sort.SortFields.Add Key: = Range (Selection.Address), _
SortOn: = xlSortOnValues, Ред: = xlAscending, DataOption: = xlSortTextAsNumbers
Горният код се използва за сортиране на данните в първата колона във възходящ ред.
За i = ActiveSheet.Cells (Rows.Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1
Горният код се използва за прилагане на обратен цикъл, започвайки от последния ред до избрания ред.
ActiveSheet.Rows (i). Изтриване на изместване: = xlUp
Горният код се използва за изтриване на ред и преместване на курсора към горния ред.
Моля, следвайте кода по -долу
Опция Изрично под. ПремахванеDuplicate () „Деклариране на променливи Dim i As Long“ Деактивиране на актуализациите на екрана Application.ScreenUpdating = False Range („A11“). Изберете ActiveSheet.Sort.SortFields.Clear „Сортиране на данните във възходящ ред ActiveSheet.Sort.SortFields.Add Ключ: = Обхват (Selection.Address), _ SortOn: = xlSortOnValues, Ред: = xlAscending, DataOption: = xlSortTextAsNumbers С ActiveSheet.Sort .SetRange Диапазон (Selection.Offset (1, 0), ActiveSheet.Cells Selection.End (xlToRight) .Column). End (xlUp)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin. Приложете Край с „Превключване през всички клетки За i = ActiveShells.C. Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1 'Сравняване на стойността на две съседни клетки за дублиращи се записи If ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column) .Value then 'Изтриване на дублиращия се запис ActiveSheet.Rows (i) .Delete shift: = xlUp End If Next i' Активиране на екрана нагоре дати Application.ScreenUpdating = True End Sub
Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта