Neste artigo, criaremos uma macro para remover registros duplicados dos dados.
Os dados brutos consistem em dados do funcionário, que incluem Nome, Idade e Sexo.
Explicação lógica
Criamos uma macro “RemovingDuplicate” para remover registros duplicados dos dados. Esta macro origina primeiramente os dados em uma sequência e, em seguida, faz a comparação entre os valores de duas linhas consecutivas para descobrir registros duplicados.
Explicação do código
ActiveSheet.Sort.SortFields.Clear
O código acima é usado para remover qualquer classificação anterior dos dados.
ActiveSheet.Sort.SortFields.Add Key: = Range (Selection.Address), _
SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = xlSortTextAsNumbers
O código acima é usado para classificar os dados na primeira coluna em ordem crescente.
Para i = ActiveSheet.Cells (Rows.Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1
O código acima é usado para aplicar o loop reverso, começando da última linha até a linha selecionada.
ActiveSheet.Rows (i) .Delete shift: = xlUp
O código acima é usado para excluir uma linha e mover o cursor para a linha superior.
Siga abaixo para o código
Option Explicit Sub RemovingDuplicate () 'Declarando variáveis Dim i As Long' Desativando atualizações de tela Application.ScreenUpdating = False Range ("A11"). Selecione ActiveSheet.Sort.SortFields.Clear 'Classificando dados em ordem crescente ActiveSheet.Sort.SortFields.Add Chave: = Range (Selection.Address), _ SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = xlSortTextAsNumbers With ActiveSheet.Sort .SetRange Range (Selection.Offset (1, 0), ActiveSheet.Cells (Rows.Count, Selection.End (xlToRight) .Column) .End (xlUp)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'Looping por todas as células For i = ActiveSheet.Cells (Linhas. Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Passo -1 'Comparando o valor de duas células adjacentes para registros duplicados If ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column) .Value Then 'Exclua o registro duplicado ActiveSheet.Rows (i) .Delete shift: = xlUp End If Next i' Habilitando a tela para cima datas Application.ScreenUpdating = True End Sub
Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail