Microsoft Excel'de VBA kullanarak yinelenen kayıtları silin

Anonim

Bu yazımızda verilerden mükerrer kayıtları kaldırmak için bir makro oluşturacağız.

Ham veriler, Ad, Yaş ve Cinsiyeti içeren çalışan verilerinden oluşur.

Mantıksal açıklama

Verilerden yinelenen kayıtları kaldırmak için bir “RemovingDuplicate” makrosu oluşturduk. Bu makro, önce bir dizideki verileri besler ve daha sonra mükerrer kayıtları bulmak için iki ardışık satırın değerleri arasında karşılaştırma yapar.

Kod açıklaması

ActiveSheet.Sort.SortFields.Clear

Yukarıdaki kod, verilerdeki önceki sıralamaları kaldırmak için kullanılır.

ActiveSheet.Sort.SortFields.Anahtar Ekle:=Aralık(Seçim.Adres), _

SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers

Yukarıdaki kod, ilk sütundaki verileri artan düzende sıralamak için kullanılır.

i için = ActiveSheet.Cells(Rows.Count, Selection.Column).End(xlUp).Row To Selection.Row + 1 Adım -1

Yukarıdaki kod, son satırdan seçilen satıra doğru ters döngü uygulamak için kullanılır.

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

Yukarıdaki kod, bir satırı silmek ve imleci bir üst satıra taşımak için kullanılır.

Lütfen kod için aşağıdan takip edin

 Seçenek Explicit Sub RemovingDuplicate() 'Değişkenleri Bildirme Dim i As Long' Ekran güncellemelerini devre dışı bırakma Application.ScreenUpdating = False Range("A11").ActiveSheet.Sort.SortFields.Clear 'Verileri artan sırada sıralama ActiveSheet.Sort.SortFields.Add Key:=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 'Tüm hücreler arasında döngü yapma For i = ActiveSheet.Cells(Rows) Count, Selection.Column).End(xlUp).Row To Selection.Row + 1 Adım -1 'Yinelenen kayıtlar için iki bitişik hücrenin değerini karşılaştırma If ActiveSheet.Cells(i, Selection.Column).Value = ActiveSheet.Cells( (i - 1), Selection.Column).Value Ardından 'ActiveSheet.Rows(i) çift kaydını silin.Delete shift:=xlUp End If Next i 'Ekranı etkinleştirme tarihler Application.ScreenUpdating = True End Sub 

Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın