Izbrišite dvostruke zapise pomoću VBA u programu Microsoft Excel

Anonim

U ovom ćemo članku stvoriti makronaredbu za uklanjanje dupliciranih zapisa iz podataka.

Sirovi podaci sastoje se od podataka o zaposlenicima, koji uključuju ime, dob i spol.

Logično objašnjenje

Napravili smo makronaredbu “RemovingDuplicate” za uklanjanje dupliciranih zapisa iz podataka. Ova makronaredba prvo izvor podataka u nizu, a zatim vrši usporedbu između vrijednosti dva uzastopna retka kako bi se pronašli duplicirani zapisi.

Objašnjenje koda

ActiveSheet.Sort.SortFields.Clear

Gornji kôd koristi se za uklanjanje prethodnog sortiranja podataka.

ActiveSheet.Sort.SortFields.Add Key: = Raspon (Selection.Address), _

Sortiraj: = xlSortOnValues, Redoslijed: = xlAscending, DataOption: = xlSortTextAsNumbers

Gornji kôd koristi se za sortiranje podataka u prvom stupcu uzlaznim redoslijedom.

Za i = ActiveSheet.Cells (Rows.Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1

Gornji kôd koristi se za primjenu obrnute petlje, počevši od zadnjeg reda do odabranog retka.

ActiveSheet.Rows (i) .Delete shift: = xlUp

Gornji kôd koristi se za brisanje retka i pomicanje kursora u gornji red.

Molimo slijedite dolje za kôd

 Opcija Eksplicitno pod uklanjanjeDuplicate () 'Deklariranje varijabli Dim i As Long' Onemogućavanje ažuriranja zaslona Application.ScreenUpdating = False Range ("A11"). Odaberite ActiveSheet.Sort.SortFields.Clear 'Sortiranje podataka u rastućem redoslijedu ActiveSheet.Sort.SortFields.Add Ključ: = Raspon (Odabir.Addresa), _ Sortiraj: = xlSortOnValues, Redoslijed: = xlAscending, DataOption: = xlSortTextAsNumbers S ActiveSheet.Sort .SetRange rasponom (Selection.Offset (1, 0), ActiveSheet.Cells, Rows, Rows, Selection.End (xlToRight) .Column) .End (xlUp)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin. Primijeni Završi s 'Petlja kroz sve ćelije Za i = ActiveSheet.Ce. Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1 'Usporedba vrijednosti dviju susjednih ćelija za duple zapise Ako ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column) .Value Zatim 'Izbriši dupli zapis ActiveSheet.Rows (i) .Delete shift: = xlUp End If Next i' Omogućavanje zaslona gore datumi Application.ScreenUpdating = True End Sub 

Ako vam se dopao ovaj blog, podijelite ga sa svojim prijateljima na Facebooku. Također, možete nas pratiti na Twitteru i Facebooku.

Voljeli bismo vas čuti, javite nam kako možemo poboljšati svoj rad i učiniti ga boljim za vas. Pišite nam na web stranici e -pošte